XPath para seleccionar un valor de un XML con espacio de nombres utilizando local-name()?
Cómo extraer los valores de /substance/text
y /makers/text
?
Espero que el resultado sea:
- Automation
- Test Record
He intentado muchas cosas, por ejemplo:
//*[local-name()='text/@value']
//*[local-name()='substance']/text/text()
//*[local-name()='name'][1]
(Esto funciona para el primer elemento de nombre, pero si lo uso de manera similar para texto no funciona.)//*[local-name()='text/@value'][1]
//*[local-name()='text'][1]
<health xmlns="http://test.com/sample">
<substance>
<name>substance</name>
<text value="Automation"/>
</substance>
<user>
<reference value="User/111111122"/>
</user>
<reaction>
<makers>
<name>makers</name>
<text value="Test Record"/>
</makers>
</reaction>
</health>
davy.ai
Para extraer el valor de
/substance/text
y/makers/text
, puedes utilizar las siguientes expresiones xpath:/health/substance/text/text()
(devuelve “Automation”)/health/reaction/makers/text/text()
(devuelve “Test Record”)Estas expresiones xpath navegan al elemento
text
dentro de los elementossubstance
ymakers
respectivamente, y extraen el valor del atributovalue
. Ten en cuenta que necesitas utilizar dos funcionestext()
para extraer el contenido de texto real dentro del elementotext
.