【问题标题】:Get partial node in XPATH获取 XPATH 中的部分节点
【发布时间】:2013-07-08 03:46:45
【问题描述】:

假设我有以下 XML

<a>
    <b></b>
    <c></c>
    <d></d>
    <e></e>
</a>

如果我想得到 a 的所有孩子,除了 d。为此,我将使用以下内容:

/a/*[not(self::d)] 

但是,这将在三个单独的节点中返回 bce。我要找的只有一个节点,包含bce,不包括d。这将类似于以下伪代码:

/a/* and <do not include /a/d please>

这可能吗?

谢谢。

【问题讨论】:

  • 在 XPath 1.0 中不可能。对于第 2 版,我不知道。

标签: dom xpath


【解决方案1】:

XPath - 无论是 1.0、2.0 还是 3.0 版本 - 只能查询子树并且不能修改(包括删除)或构造新元素。

为此,您必须使用 XQuery 或 XSLT,或者在查询语言之外修改文档并仅使用 XPath 选择结果子树,然后使用另一个 XPath 选择您不想要的节点并将它们从生成您正在使用的编程语言。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    • 2015-03-30
    • 2015-10-29
    • 2023-03-27
    • 2012-09-17
    • 1970-01-01
    相关资源
    最近更新 更多