问题
With my current node selected I wish to find an element <name> [./name] and return the text content. If an element <name> does not exist in the currently selected node I wish to check the parent element [./parent::name] and so on recursively up to the root, returning the value of the nearest parent where the element exists.
Can it be done with XPath?
回答1:
(Edit: I misinterpreted the question the first time)
I propose to use
ancestor-or-self::name[1]
This finds all name elements, starting with self, parent, and so on, and orders them in increasing distance from self. So selecting [1] gives you the nearest one.
来源:https://stackoverflow.com/questions/1362466/xpath-recursive-ancestor-search