首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >xml Linq到XML根节点中的属性值

xml Linq到XML根节点中的属性值
EN

Stack Overflow用户
提问于 2016-02-27 23:02:55
回答 1查看 66关注 0票数 0

在通过linq将xml解析为xml时,我遇到了一种奇怪的行为(至少对我来说是这样)。下面是我分析的第一个xml

代码语言:javascript
运行
复制
`<?xml version="1.0" encoding="UTF-8"?>
 <TestRun>
 <UnitTestResult testName = "Arun" outcome = "i">
 </UnitTestResult>
 <UnitTestResult testName = "Arun1" outcome = "i">
 </UnitTestResult>
 </TestRun>`

我的密码就像

代码语言:javascript
运行
复制
XDocument doc = XDocument.Parse(fileContents);
var result = doc.Descendants("UnitTestResult");

上面的效果很好。但是,如果根节点包含属性,则相同的代码无法工作。可能是什么原因。下面的XML示例

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="UTF-8"?>
<TestRun id="7903b4ff-8706-4379-b9e8-567034b70abb" name="inaambika@INBELW013312A 2016-02-26 16:55:14" runUser="STC\inaambika" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
<UnitTestResult testName = "Arun" outcome = "i">
</UnitTestResult>
<UnitTestResult testName = "Arun1" outcome = "i">
</UnitTestResult>
</TestRun>

XDocument doc = XDocument.Parse(fileContents);
var result = doc.Descendants("UnitTestResult");
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-27 23:11:32

下面这个不是普通属性,它是默认名称空间声明:

代码语言:javascript
运行
复制
xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010"

在根元素级别声明默认命名空间时,根元素和所有没有前缀的子代元素(在本例中意味着发布的XML中的所有元素)都在该命名空间中。

您可以使用XNamespace +元素-本地名称来引用命名空间中的元素:

代码语言:javascript
运行
复制
XDocument doc = XDocument.Parse(fileContents);
XNamespace d = "http://microsoft.com/schemas/VisualStudio/TeamTest/2010"
var result = doc.Descendants(d+"UnitTestResult");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35676556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档