This is my xml
<Governing_Law_TermName displayValue="NZ Law">
<Governing_LawText>This is the text within</Governing_LawText>
</Governing_Law_TermName>
I want to extract the term 'NZ Law' but it's not the value within a node, but defined as its displayValue.
I tried the following but did not work:
name(//Governing_Law_TermName)
CodePudding user response:
In your XPath expression, the sub-expression //Governing_Law_TermName identifies the element, and the name() function will return the name of that element i.e. Governing_Law_TermName, which is obviously not what you want.
What you actually want is to traverse from the Governing_Law_TermName element to its displayValue attribute. Follow the path along the attribute axis like so:
//Governing_Law_TermName/attribute::displayValue
... or in its more commonly used shorthand form:
//Governing_Law_TermName/@displayValue
Note that in the terminology used for XPath, the Governing_Law_TermName is a "node", and so is the displayValue attribute, as is the Governing_LawText element and also the text This is the text within. Text nodes, elements, and attributes (among others) are all different kinds of node.
