如何使用C#的XmlDocument读取XML属性?
我有一个XML文件,看起来有点像这样:
<?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()
获取介于两者之间的值,效果非常好。我就是想不出如何获取属性?
发布于 2009-06-01 05:58:11
XmlNodeList elemList = doc.GetElementsByTagName(...);
for (int i = 0; i < elemList.Count; i++)
{
string attrVal = elemList[i].Attributes["SuperString"].Value;
}
发布于 2009-06-01 06:07:14
你应该调查一下XPath。一旦你开始使用它,你会发现它比遍历列表更高效,更容易编码。它还可以让你直接得到你想要的东西。
则代码将类似于
string attrVal = doc.SelectSingleNode("/MyConfiguration/@SuperNumber").Value;
请注意,2014年4月8日,XPath 3.0成为W3C推荐标准。
发布于 2009-06-01 07:23:34
如果您喜欢Linq语法,您可以迁移到XDocument而不是XmlDocument,然后使用Linq。类似于:
var q = (from myConfig in xDoc.Elements("MyConfiguration")
select myConfig.Attribute("SuperString").Value)
.First();
https://stackoverflow.com/questions/933687
复制相似问题