在XSL 1.0中,后代或自身将选择ALL所有后代和当前节点。如果您只想选择直系子代和当前节点(即子代或自身),该怎么办?

XPATH有可能吗?

最佳答案

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

SomeExpression | SomeExpresion/node()

在XPath 2.0或更高版本中,使用:
SomeExpression/(self::node()|node())

一个不正确的答案是:
SomeExpression | SomeExpresion/*

因为这只会选择SomeExpression的那些子元素,而SomeExpression可能还会有其他子元素-例如文本节点,注释节点,处理指令节点。

也是不正确的:
./SomeExpression | ./*/SomeExpression

这不会选择./SomeExpression的直接子代,也不会选择./*/SomeExpression的直接子代。

10-08 00:15