1

私はこのxmlファイルを持っています

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tes="http://testwork/">
   <soapenv:Header/>
   <soapenv:Body>
      <tes:sayHelloWorldFrom>
         <!--Optional:-->
         <arg0>?</arg0>
      </tes:sayHelloWorldFrom>
   </soapenv:Body>
</soapenv:Envelope>

xslt 変換を使用して本文を抽出したいのですが、私の xsl は

<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
    xmlns:m="http://www.example.org/stock">
    <xsl:template match="/">
        <xsl:apply-templates select="soapenv:Envelope/soapenv:Body/*"/>
    </xsl:template>
    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>

しかし、変換中にエラーが表示されます

Unable to perform XSL transformation on your XML file. null

xsl の何が問題になっていますか?

4

1 に答える 1

1

XSL には、XML にある名前空間がありません。これがないと、XSL は XML 内で要素を見つけることができません。

だから追加

xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:tes="http://testwork/"

XSL に変換すると、問題なく変換されます。

于 2013-10-11T13:38:58.047 に答える