Xslt 如何在soap-xml中选择值

Xslt 如何在soap-xml中选择值,xslt,select,soap,Xslt,Select,Soap,我是xsl新手,我想知道如何选择字段r1的值 这是我的xml(不是100%的soap) 1. 2. 我试过这个 <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"/> 但是它不起作用您需要注册SOAP名称空间:

我是xsl新手,我想知道如何选择字段r1的值

这是我的xml(不是100%的soap)



1.
2.

我试过这个

<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"/>


但是它不起作用

您需要注册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>

<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>