我需要从多个xml文件中检索元数据。 xml文件的结构如下:
<songs>
<song_title> some title </song_title>
<classification> some classification </classification>
<song_text> some text </song_text>
<singer>
<sing> singer's name </sing>
<gender> gender </gender>
<bornYear> year </bornYear>
<livePlace> live place </livePlace>
<liveArea> live area </liveArea>
</singer>
</songs>
用户选择搜索条件 - 实时场所或现场区域。然后他输入他搜索的地方或区域的名称。我需要找到并显示歌曲的链接,这些歌曲在其元数据中包含用户输入的地点或区域。我使用的是.NET 3.5
答案 0 :(得分:1)
这个答案更像是一个指针...
您可以使用LINQ to XML完成此任务。
什么是LINQ to XML?
LINQ to XML是一个支持LINQ的, 内存中的XML编程接口 这使您可以使用XML 在.NET Framework编程中 语言。
LINQ to XML就像Document一样 它带来的对象模型(DOM) XML文档到内存中。您可以 查询和修改文档,以及 修改后,您可以将其保存到 一个文件或序列化它并发送它 通过互联网。但是,LINQ来 XML与DOM不同:它提供了一个 新的对象模型更轻 重量和更容易使用,和 利用语言 Visual C#2008中的改进。
然后,您可以使用LINQ查询表达式搜索和操作任何XML文档元素,如下例所示:
IEnumerable<XElement> partNos =
from item in purchaseOrder.Descendants("Item")
where (int) item.Element("Quantity") *
(decimal) item.Element("USPrice") > 100
orderby (string)item.Element("PartNumber")
select item;
答案 1 :(得分:0)
如果您厌恶Linq
,您可以使用XPathing轻松获得您想要的任何内容http://msdn.microsoft.com/en-us/library/ms256086%28VS.85%29.aspx
node.SelectNodes("Songs[/Singer/LivePlace='California']")
这将使所有具有歌手节点的歌曲节点具有值为加利福尼亚州的liveplace节点。