从xml文件中检索元数据

时间:2011-05-30 17:38:53

标签: c# .net xml metadata

我需要从多个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

2 个答案:

答案 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节点。