如何根据多个值获取最近的祖先节点

时间:2014-06-27 09:23:46

标签: xml xslt

如何根据多选节点获取最近的祖先?

我的意思是说: 假设我的XML文件中有很多标记:章节部分子部分子部分,< em> abstract 和其他人。让我们假设我在某个级别的节点上,我希望根据我的选择(部分第, subsubsection )。

2 个答案:

答案 0 :(得分:1)

您可以使用ancestor::*[self::chapter | self:section | self::subsection | self::subsubsection][1]

如果您想要该名称,请使用name(ancestor::*[self::chapter | self:section | self::subsection | self::subsubsection][1])

答案 1 :(得分:0)

文件订单将孩子置于父母之后

(ancestor::chapter | ancestor::section | ..... )[last()]

应该能满足您的需求。

将谓词应用于ancestor::位置步骤时,节点的编号顺序相反,[1]是最近的祖先。 [last()]是最遥远的。但是,当您将谓词应用于带括号的表达式时,无论表达式中使用的轴是什么,计数都是正常的文档顺序。