我想使用XSLT进行解析。
我的XML:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:obtenerListaMisionesResponse xmlns:ns2="http://Servicios/">
<return>
<codMisiones>1</codMisiones>
<correoMision>Foo</correoMision>
<nombreMision>Bar</nombreMision>
</return>
<return>
<codMisiones>2</codMisiones>
<correoMision>Foo 2</correoMision>
<nombreMision>Bar 2</nombreMision>
</return>
</ns2:obtenerListaMisionesResponse>
</S:Body>
</S:Envelope>
然后我尝试使用这个XSLT:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="obtenerListaMisionesResponse">
<xsl:for-each select="return">
<xsl:value-of select="nombreMision"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
但我有这个回报:
1 Foo Bar 2 Foo2 Bar2
我想要的时候:
Bar Bar2
我认为是因为我的命名空间在里面,但我不明白什么是错的。
答案 0 :(得分:1)
您是对的,obtenerListaMisionesResponse
与ns2:obtenerListaMisionesResponse
的名称不同,因此您的模板与其不匹配。
尝试匹配ns2:obtenerListaMisionesResponse
,并在您的XSLT根元素中包含xmlns:ns2=..
声明。