Si tengo este XSLXSL
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html"/>
<xsl:output omit-xml-declaration="yes" encoding="UTF-8"/>
<xsl:template match='/'>
<xsl:value-of select="//Description" />
</xsl:template>
</xsl:stylesheet>
Y este XML
<ArrayOfLookupValue xmlns="http://switchwise.com.au/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<LookupValue>
<Description>AGL</Description>
<Value>8</Value>
</LookupValue>
<LookupValue>
<Description>Australian Power & Gas</Description>
<Value>6</Value>
</LookupValue>
<LookupValue>
<Description>EnergyAustralia</Description>
<Value>13</Value>
</LookupValue>
<LookupValue>
<Description>Origin Energy</Description>
<Value>9</Value>
</LookupValue>
<LookupValue>
<Description>TRU Energy</Description>
<Value>7</Value>
</LookupValue>
</ArrayOfLookupValue>
¿Cómo realmente obtener algunos datos de esta línea:
<xsl:value-of select="//Description" />
He pasado horas sobre esto y he llegado a la conclusión de que el espacio de nombres xmlns = es lo que me está causando dolor.
Cualquier ayuda muy apreciada.
Por cierto, el XML proviene de un servicio web así que no puedo simplemente "cambiar" - me puedo preproceso, pero eso no es lo ideal ...
También he confirmado que la eliminación de los espacios de nombres de una simulación del XML soluciona el problema.
Buena pregunta, +1. Vea mi respuesta para una explicación y una solución corta y fácil. –
Tiene razón en que el espacio de nombres está marcando la diferencia. Consulte la buena explicación de Dimitre ... y realmente ahorrará tiempo en el futuro si lee espacios de nombres XML (particularmente, como se usa en XPath). – LarsH