首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用XmlDocument读取XML属性

使用XmlDocument读取XML属性
EN

Stack Overflow用户
提问于 2009-06-01 05:49:53
回答 7查看 316.9K关注 0票数 83

如何使用C#的XmlDocument读取XML属性?

我有一个XML文件,看起来有点像这样:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8" ?>
<MyConfiguration xmlns="http://tempuri.org/myOwnSchema.xsd" SuperNumber="1" SuperString="whipcream">
    <Other stuff />
</MyConfiguration> 

如何读取XML属性SuperNumber和SuperString?

目前我使用的是XmlDocument,我使用XmlDocument的GetElementsByTagName()获取介于两者之间的值,效果非常好。我就是想不出如何获取属性?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-06-01 05:58:11

代码语言:javascript
复制
XmlNodeList elemList = doc.GetElementsByTagName(...);
for (int i = 0; i < elemList.Count; i++)
{
    string attrVal = elemList[i].Attributes["SuperString"].Value;
}
票数 119
EN

Stack Overflow用户

发布于 2009-06-01 06:07:14

你应该调查一下XPath。一旦你开始使用它,你会发现它比遍历列表更高效,更容易编码。它还可以让你直接得到你想要的东西。

则代码将类似于

代码语言:javascript
复制
string attrVal = doc.SelectSingleNode("/MyConfiguration/@SuperNumber").Value;

请注意,2014年4月8日,XPath 3.0成为W3C推荐标准。

票数 89
EN

Stack Overflow用户

发布于 2009-06-01 07:23:34

如果您喜欢Linq语法,您可以迁移到XDocument而不是XmlDocument,然后使用Linq。类似于:

代码语言:javascript
复制
var q = (from myConfig in xDoc.Elements("MyConfiguration")
         select myConfig.Attribute("SuperString").Value)
         .First();
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/933687

复制
相关文章

相似问题

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