2013-11-27 36 views
0

大家好 我有一個XML文件:如何使用C#得到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> 

如何,我可以得到價目表類=「孩子」?我使用C#。

例如:輸出是:哈利·波特的價格爲30和ABC的價格是29

感謝,

回答

2

您可以使用LINQ到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") 
       }); 

您可以撥打books.First()方法只有一次/第一個找到的項目。

+0

非常感謝。 –

相關問題