es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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:

  1. Automation
  2. 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>

Tags:  , ,

Answer

  1. Avatar for 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 elementos substance y makers respectivamente, y extraen el valor del atributo value. Ten en cuenta que necesitas utilizar dos funciones text() para extraer el contenido de texto real dentro del elemento text.

Comments are closed.