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

问题描述:

我有一个看起来像这样的XML文件:C#:如何解析给定的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

我改进了代码格式,问题和标题。并添加了一个标签。 – zx485

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

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

加载文档后,可以使用“创建/测试”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

+0

嗨,谢谢你的回答。我能够使用Xmlreader访问第一个节点并使用Object.Movetonextattribute()函数我甚至遍历了属性的值,但现在我被卡住了,我将如何移动到下一个节点并访问其他节点属性。 – Goyal

+0

看看http://stackoverflow.com/questions/2441673/reading-xml-with-xmlreader-in-c-sharp。它有一个很好的例子,对这个链接非常感谢 – Gun

+0

,它确实有帮助。 – Goyal