【发布时间】:2011-04-23 06:11:48
【问题描述】:
我收到了来自外部公司的 XML(文档)文件。我需要过滤文档以删除我不感兴趣的所有数据。 该文件大约 500KB,但会经常被请求。
假设以下文件:
<dvdlist>
<dvd>
<title>title 1</title>
<director>directory 2</director>
<price>1</price>
<location>
<city>denver</city>
</location>
</dvd>
<dvd>
<title>title 2</title>
<director>directory 2</director>
<price>2</price>
<location>
<city>london</city>
</location>
</dvd>
<dvd>
<title>title 3</title>
<director>directory 3</director>
<price>3</price>
<location>
<city>london</city>
</location>
</dvd>
</dvdlist>
我需要的是简单地根据 city = london 过滤文档,以便最终得到这个新的 XML 文档
<dvdlist>
<dvd>
<title>title 2</title>
<director>directory 2</director>
<price>2</price>
<location>
<city>london</city>
</location>
</dvd>
<dvd>
<title>title 3</title>
<director>directory 3</director>
<price>3</price>
<location>
<city>london</city>
</location>
</dvd>
</dvdlist>
我已经尝试了以下
XmlDocument doc = new XmlDocument();
doc.Load(@"C:\Development\Website\dvds.xml");
XmlNode node = doc.SelectSingleNode("dvdlist/dvd/location/city[text()='london']");
任何帮助或链接将不胜感激
谢谢
【问题讨论】:
-
是否有您不想使用 Linq to XML 的特定原因?
-
你真的遇到什么问题了吗?你尝试了一些东西;成功了吗?
-
@DoctaJonez。不,没有。如果 Linq 更适合我会很高兴。
-
好问题,+1。请参阅我的答案以获得简单而完整的解决方案。 :)
标签: c# linq xslt xpath xmldocument