Ale*_*lex 76 .net c# xml xmldocument
如何使用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>
Run Code Online (Sandbox Code Playgroud)
我如何读取XML属性SuperNumber和SuperString?
目前我正在使用XmlDocument,我使用XmlDocument获取其中的值GetElementsByTagName(),这非常有效.我只是无法弄清楚如何获得属性?
Ars*_*yan 106
XmlNodeList elemList = doc.GetElementsByTagName(...);
for (int i = 0; i < elemList.Count; i++)
{
string attrVal = elemList[i].Attributes["SuperString"].Value;
}
Run Code Online (Sandbox Code Playgroud)
Gre*_*reg 87
你应该研究一下XPath.一旦你开始使用它,你会发现它比迭代列表更有效,更容易编码.它还可以让您直接获得所需的东西.
然后代码将类似于
string attrVal = doc.SelectSingleNode("/MyConfiguration/@SuperNumber").Value;
Run Code Online (Sandbox Code Playgroud)
请注意,XPath 3.0于2014年4月8日成为W3C推荐标准.
您可以迁移到XDocument而不是XmlDocument,然后如果您喜欢该语法则使用Linq.就像是:
var q = (from myConfig in xDoc.Elements("MyConfiguration")
select myConfig.Attribute("SuperString").Value)
.First();
Run Code Online (Sandbox Code Playgroud)
小智 7
我有一个Xml文件books.xml
<ParameterDBConfig>
<ID Definition="1" />
</ParameterDBConfig>
Run Code Online (Sandbox Code Playgroud)
程序:
XmlDocument doc = new XmlDocument();
doc.Load("D:/siva/books.xml");
XmlNodeList elemList = doc.GetElementsByTagName("ID");
for (int i = 0; i < elemList.Count; i++)
{
string attrVal = elemList[i].Attributes["Definition"].Value;
}
Run Code Online (Sandbox Code Playgroud)
现在,attrVal有了价值ID.