获取XPATH中的部分节点

时间:2013-07-10 09:17:39

标签: dom xpath

假设我有以下XML

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

如果我想要除 d 之外的所有 a 的孩子。为此,我会使用以下内容:

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

但是,这会在三个单独的节点中返回 b c e 。我要找的只是一个节点,包含 b c e ,不包括 d 。这将是以下伪代码的类似内容:

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

这可能吗?

感谢。

1 个答案:

答案 0 :(得分:2)

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

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