你如何选择孩子或自我(儿童+自我)

Der*_*ker 8 xml xslt xpath

在XSL 1.0中,descendant-or-self将选择所有后代和当前节点.如果您只想选择直接子节点和当前节点(即子节点或自身节点),该怎么办?

这可能与XPATH有关吗?

Dim*_*hev 11

在XPath 1.0或更高版本中使用:

SomeExpression | SomeExpresion/node()
Run Code Online (Sandbox Code Playgroud)

在XPath 2.0或更高版本中使用:

SomeExpression/(self::node()|node())
Run Code Online (Sandbox Code Playgroud)

答案不正确:

SomeExpression | SomeExpresion/*
Run Code Online (Sandbox Code Playgroud)

因为这只选择那些SomeExpression元素的子元素,同时SomeExpression也可以选择其他子元素- 作为文本节点,注释节点,处理指令节点.

也不正确的是:

./SomeExpression | ./*/SomeExpression
Run Code Online (Sandbox Code Playgroud)

这不会选择直接的孩子,./SomeExpression也不会选择子女./*/SomeExpression.