XPath select 元素但在结果中排除子元素
XPath select element but exclude children in the result
是否可以创建一个选择元素但删除一些子元素的 XPath?我的 RSS 提要如下所示:
<rss>
<channel>
<title>My Feed</title>
<item>...</item>
<item>...</item>
<item>...</item>
</channel>
</rss>
我想要一个 XPath 表达式,它将 return 以下 XML:
<rss>
<channel>
<title>My Feed</title>
</channel>
</rss>
就是上面的 XML,但没有 <item>
标签。这可能与 XPath 相关吗?如果可以,XPath 表达式是什么样的?
您的 XPath 表达式 selects 源树中的节点(将其视为返回对这些节点的引用)。这些节点仍在原始树中,您可以从 selected 节点导航到它们的祖先、后代和兄弟节点。
对于使用 XPath 到 select 节点的应用程序来说,然后显示以该节点为根的整个树是很常见的。应用程序导航到这些节点的祖先或兄弟节点的情况不太常见(但同样可行)。
所以第一件事是:结果中没有 children。您看到 children 是因为发出 XPath 表达式的应用程序选择从返回的节点导航到它们的 children.
如果您想保留一些 children 并删除其他的,那么您正在进行转换而不仅仅是 selection,因此 XPath 不再是完成这项工作的工具:您需要 XSLT或 XQuery。
是否可以创建一个选择元素但删除一些子元素的 XPath?我的 RSS 提要如下所示:
<rss>
<channel>
<title>My Feed</title>
<item>...</item>
<item>...</item>
<item>...</item>
</channel>
</rss>
我想要一个 XPath 表达式,它将 return 以下 XML:
<rss>
<channel>
<title>My Feed</title>
</channel>
</rss>
就是上面的 XML,但没有 <item>
标签。这可能与 XPath 相关吗?如果可以,XPath 表达式是什么样的?
您的 XPath 表达式 selects 源树中的节点(将其视为返回对这些节点的引用)。这些节点仍在原始树中,您可以从 selected 节点导航到它们的祖先、后代和兄弟节点。
对于使用 XPath 到 select 节点的应用程序来说,然后显示以该节点为根的整个树是很常见的。应用程序导航到这些节点的祖先或兄弟节点的情况不太常见(但同样可行)。
所以第一件事是:结果中没有 children。您看到 children 是因为发出 XPath 表达式的应用程序选择从返回的节点导航到它们的 children.
如果您想保留一些 children 并删除其他的,那么您正在进行转换而不仅仅是 selection,因此 XPath 不再是完成这项工作的工具:您需要 XSLT或 XQuery。