XPath select元素但在结果中排​​除子元素

时间:2017-03-31 13:56:30

标签: xml xpath rss

是否可以创建一个选择元素但删除一些子元素的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表达式是什么样的?

1 个答案:

答案 0 :(得分:3)

您的XPath表达式选择源树中的节点(将其视为返回对这些节点的引用)。这些节点仍然在原始树中,您可以从选定的节点导航到他们的祖先,后代和兄弟姐妹。

使用XPath选择节点然后显示以该节点为根的整个树的应用程序非常常见。应用程序导航到这些节点的祖先或兄弟节点的情况不太常见(但同样可行)。

所以第一件事是:结果中没有任何孩子。您会看到子项,因为发出XPath表达式的应用程序选择从返回的节点导航到它们的子节点。

如果你想保留一些孩子并放弃其他孩子,那么你正在进行转型而不仅仅是选择,因此XPath不再是工作的工具:你需要XSLT或XQuery。