2017-08-11 52 views
0

我想使用XSLT进行解析。使用名称空间内的值进行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美孚酒吧2 foo2的BAR2

Whe ñ我想这一点:

酒吧BAR2

我认为这是什么,因为我的名字空间里面,但我不明白什么是错的。

回答

1

你是对的,obtenerListaMisionesResponsens2:obtenerListaMisionesResponse不一样,因此你的模板与它不匹配。

尝试匹配ns2:obtenerListaMisionesResponse,并在您的XSLT根元素中包含xmlns:ns2=..声明。

+0

你是对的!有用 –