【发布时间】:2011-05-05 10:33:35
【问题描述】:
我正在寻找一种过滤 XML 文档的有效方法。我正在使用 C#/.NET。假设我有以下原始文件:
<Bookstores>
<Bookstore>
<StoreName>Store 1</StoreName>
<Books>
<Book>
<Author>Bob</Author>
<Title>ABC</Title>
</Book>
<Book>
<Author>John</Author>
<Title>XYZ</Title>
</Book>
</Books>
</Bookstore>
</Bookstores>
我在其他地方存储了另一个部分文档:
<Book>
<Author>John</Author>
<Title>XYZ</Title>
</Book>
使用这两个文档,我需要输出第二个部分 XML 文档,包括它的原始祖先。
<Bookstores>
<Bookstore>
<StoreName>Store 1</StoreName>
<Books>
<Book>
<Author>John</Author>
<Title>XYZ</Title>
</Book>
</Books>
</Bookstore>
</Bookstores>
我也愿意通过其他方式来做到这一点。我有一个无法直接操作的原始文档。我需要单独存储对该文档部分的“引用”。然后我需要使用“参考”过滤/翻译原始文档以进行显示。
【问题讨论】:
-
所以您想复制第一个 XML 文档,但过滤掉除第二个 XML 文档中的书籍之外的所有书籍?
-
是的,这就是我想要完成的。
-
好问题,+1。有关完整而简短的 XSLT 解决方案,请参阅我的答案。