2017-08-11 93 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

你是對的!有用 –