如何使用C#读取xml节点名称

时间:2016-01-29 07:32:57

标签: c# xml xpath

我是这个领域的新手。请让我知道如何获取或显示

书店,书籍,标题,价格(我需要的DISTINCT输出)

从以下XML文件中,我如何阅读和打印 DISTINCT xml节点。

<?xml version="1.0" encoding="UTF-8"?>

<bookstore>
  <book>
    <title lang="en">Harry Potter</title>
    <price>29.99</price>
  </book>

  <book>
    <title lang="en">Learning XML</title>
    <price>39.95</price>
  </book>
</bookstore>

2 个答案:

答案 0 :(得分:2)

使用Linq to XML很容易:

var xdoc = XDocument.Load(fileName);
var names = xdoc.Descendants() // get all elements from xml
                .Select(e => e.Name.LocalName) // select local name of each element
                .Distinct(); // pick only distinct names

您的样本xml输出是

[
  "bookstore",
  "book",
  "title",
  "price"
]

Descendants()XPathSelectElements("//*")

相同

答案 1 :(得分:1)

试试这个

    public void Load()
{
    var doc = XDocument.Load(filePath);

    foreach(var unit in doc.Descendants("Unit"))
    {
        string str = string.Format("ID: {0}\r\nName:{0}", unit.Element("id").Value, unit.Element("name").Value);
        MessageBox.Show(str);
    }
}