2012-08-30 47 views
0

我是新來的XSL,我想知道我可以選擇R1如何選擇價值奇怪肥皂 - XML

領域的價值,這是我的XML(而不是100%的肥皂)


<Result> 
<send> 
    <x>1</x> 
</send> 
<received> 
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soapenv:Body> 
     <ns1:Consult xmlns:ns1="http://www.example.org/New/"> 
     <message> 
      <r1>2</r1> 
     </message> 
     </ns1:Consult> 
    </soapenv:Body> 
    </soapenv:Envelope> 
</received> 
</Result> 

和我想這

<xsl:value-of select="/Result/received/soap:Envelope/soap:Body[1]/*[namespace-uri()='http://www.example.org/New/' and local-name()='Consult'][1]/message/r1"/> 

,但它不工作

回答

0

您需要註冊的SOAP命名空間:

<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <xsl:template match="/"> 
     <xsl:value-of 
      select="/Result/received/soap:Envelope/soap:Body[1]/*[ 
         namespace-uri()='http://www.example.org/New/' 
         and local-name()='Consult'][1]/message/r1" /> 
    </xsl:template> 
</xsl:stylesheet> 

更重要的是,註冊他們兩個:

<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:ns1="http://www.example.org/New/> 
    <xsl:template match="/"> 
     <xsl:value-of 
      select="/Result/received/soap:Envelope/ 
         soap:Body[1]/ns1:Consult[1]/message/r1" /> 
    </xsl:template> 
</xsl:stylesheet>