如何使用c#从xml文件中获取特殊数据

时间:2013-11-27 03:15:38

标签: c# xml

大家好 我有一个xml文件:

   <bookstore>
      <book category="COOKING">
        <title lang="en">Everyday Italian</title>
        <author>Giada De Laurentiis</author>
        <year>2005</year>
        <price>30.00</price>
      </book>
      <book category="CHILDREN">
        <title lang="en">Harry Potter</title>
        <author>J K. Rowling</author>
        <year>2005</year>
        <price>30</price>
      </book>
      <book category="CHILDREN">
        <title lang="en">abc</title>
        <author>bcd</author>
        <year>2006</year>
        <price>29</price>
      </book>
      <book category="WEB">
        <title lang="en">Learning XML</title>
        <author>Erik T. Ray</author>
        <year>2003</year>
        <price>39.95</price>
      </book>

</bookstore>

category =“CHILDREN”时如何获得价目表?我使用C#。

示例:输出为:哈利波特的价格为30,abc的价格为29

感谢,

1 个答案:

答案 0 :(得分:2)

您可以使用LINQ to XML。以下代码将返回包含XML中所有数据的匿名类型实例的集合:

var xDoc = XDocument.Load("Input.txt");

var books = xDoc.Root
                .Elements("book")
                .Where(b => (string)b.Attribute("category") == "CHILDREN")
                .Select(b => new
                {
                    Title = (string)b.Element("title"),
                    Author = (string)b.Element("author"),
                    Year = (int)b.Element("year"),
                    Price = (decimal)b.Element("price")
                });

您可以在.First()上调用books方法,只获取一个/第一个找到的项目。