如何根据多选节点获取最近的祖先?
我的意思是说:
假设我的XML文件中有很多标记:章节,部分,子部分,子部分,< em> abstract 和其他人。让我们假设我在某个级别的节点上,我希望根据我的选择(章,部分,第, subsubsection )。
答案 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()]
是最遥远的。但是,当您将谓词应用于带括号的表达式时,无论表达式中使用的轴是什么,计数都是正常的文档顺序。