0

假设我有以下 XML

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

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

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

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

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

这可能吗?

谢谢。

4

1 回答 1

2

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

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

于 2013-07-10T09:57:21.483 回答