C#:如何解析给定的XML并获取属性值?

时间:2017-03-27 12:24:24

标签: xml c#-3.0

我有一个XML文件,如下所示:

<Create>
  <Test Id="01" Marks="40" Rank="4"/>
  <Test Id="02" Marks="60" Rank="5"/>
  <Test Id="03" Marks="80" Rank="2"/>
</Create>

现在,我想阅读IdMarksRank的属性值。
那么相应的C#代码看起来会得到那些属性值呢?

1 个答案:

答案 0 :(得分:0)

您可以使用XmlDocument和XPath的组合。

在第1行,转换字符串以转义引号。然后实例化XMLDocument类,并使用方法LoadXml加载字符串。可以通过使用xml.Load([path to file])来更改此文件来加载文件。

加载文档后,可以使用&#34;创建/测试&#34;选择测试元素。 XPath的。最后,我们遍历每个节点并输出所需的数据。 我已经在c#控制台应用程序中完成了这项操作并省略了样板。

var xmlString = "<Create><Test Id=\"01\" Marks=\"40\" Rank=\"4\"/><Test Id=\"02\" Marks=\"60\" Rank=\"5\"/><Test Id=\"03\" Marks=\"80\" Rank=\"2\"/></Create>";
var xml = new XmlDocument();
xml.LoadXml(xmlString);
var nodes = xml.SelectNodes("Create/Test");
foreach (XmlNode node in nodes)
{
    Console.WriteLine(string.Format("Id: {0}; Marks: {1}; Rank: {2}", node.Attributes["Id"].Value, node.Attributes["Marks"].Value, node.Attributes["Rank"].Value));
}

W3C学校有一个XPath教程,可以在这里找到:https://www.w3schools.com/xml/xpath_intro.asp

XMLDocument类文档可以在这里找到:https://msdn.microsoft.com/en-us/library/system.xml.xmldocument(v=vs.110).aspx