Pregunta

Tengo este archivo xml

<?xml version="1.0" encoding="UTF-8"?>
<bo:C837ClaimParent xsi:type="bo:C837ClaimParent"     
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
xmlns:bo="http://somelongpathHere/process/bo">
<claimAux>
...
</claimAux>
<enterpriseClaim>
...
    <patientAccountNumber>data to capture here</patientAccountNumber>
</enterpriseClaim>

Necesito hacer coincidir los datos dentro de < patientAccountNumber > ;, que está dentro de < enterpriseClaim > ;, que está dentro de < bo: C837ClaimParent gt;     He probado todos los valores que puedo pensar en xsl: template match y no puedo hacer coincidir ese nodo, o no lo encuentra o coincide con el archivo xml completo, mi archivo xsl tiene el siguiente aspecto:

    <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" version="2.0" encoding="UTF-8" indent="yes"/>
    <xsl:template match="/">
    <html>
....
<div>
  <xsl:value-of select="C837ClaimParent/enterpriseClaim/patientAccountNumber" /></div>

¿Qué debo especificar en mi xsl: template y mi xsl: value-of?

también, para este mismo archivo estaré haciendo coincidir otros valores, todo está dentro del nodo principal < bo: C837ClaimParent, entonces, ¿qué necesito usar para poder hacer coincidir eficientemente los nodos en todo mi archivo?

¿Fue útil?

Solución

Parece que le falta una declaración de espacio de nombres para su prefijo bo. Este espacio de nombres probablemente tendrá que aparecer en su solución a menos que use local-name()

editar (¡después de que apareció el espacio de nombres!

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:bo="http://somelongpathHere/process/bo">
    <xsl:output method="xml" version="2.0" encoding="UTF-8" indent="yes"/>
    <xsl:template match="/">
    <html>
....
<div>
  <xsl:value-of select="bo:C837ClaimParent/enterpriseClaim/patientAccountNumber" /></div>

¿Está seguro de que enterpriseClaim está en un espacio de nombres diferente de C837ClaimParent?

Otros consejos

<xsl:stylesheet ... xmlns:bo="http://www.bo.org">
   ...
   <xsl:value-of select="/bo:C837ClaimParent/enterpriseClaim/patientAccountNumber" />
   ...
</xsl:stylesheet>

En general, mi consejo sería leer sobre espacios de nombres en XML y XPath.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top