是否可以创建一个选择元素但删除一些子元素的XPath?我有一个看似如下的RSS提要:
<rss>
<channel>
<title>My Feed</title>
<item>...</item>
<item>...</item>
<item>...</item>
</channel>
</rss>
我想要一个将返回以下XML的XPath表达式:
<rss>
<channel>
<title>My Feed</title>
</channel>
</rss>
这只是上面的XML,但没有<item>
标记。这可能与XPath有关,如果是这样,XPath表达式是什么样的?
答案 0 :(得分:3)
您的XPath表达式选择源树中的节点(将其视为返回对这些节点的引用)。这些节点仍然在原始树中,您可以从选定的节点导航到他们的祖先,后代和兄弟姐妹。
使用XPath选择节点然后显示以该节点为根的整个树的应用程序非常常见。应用程序导航到这些节点的祖先或兄弟节点的情况不太常见(但同样可行)。
所以第一件事是:结果中没有任何孩子。您会看到子项,因为发出XPath表达式的应用程序选择从返回的节点导航到它们的子节点。
如果你想保留一些孩子并放弃其他孩子,那么你正在进行转型而不仅仅是选择,因此XPath不再是工作的工具:你需要XSLT或XQuery。