我正在尝试使用XSLT代码读取下面的XML元素值。
输入XML:
<ns0:PrintCertificateByContractNumber xmlns:ns0="http://tempuri.org/">
<ns0:ContractNumber>123</ns0:ContractNumber>
</ns0:PrintCertificateByContractNumber>
下面的XSLT我正在尝试读取值
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:output version="1.0" encoding="UTF-8" method="xml"/>
<xsl:template match="/">
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
<soapenv:Header/>
<soapenv:Body>
<tem:PrintCertificateByContractNumber>
<tem:ContractNumber>
<xsl:value-of select="ns0:PrintCertificateByContractNumber/ns0:ContractNumber"/>
</tem:ContractNumber>
</tem:PrintCertificateByContractNumber>
</soapenv:Body>
</soapenv:Envelope>
</xsl:template>
</xsl:stylesheet>
预期输出XML:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:output version="1.0" encoding="UTF-8" method="xml"/>
<xsl:template match="/">
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
<soapenv:Header/>
<soapenv:Body>
<tem:PrintCertificateByContractNumber>
<tem:ContractNumber>123</tem:ContractNumber>
</tem:PrintCertificateByContractNumber>
</soapenv:Body>
</soapenv:Envelope>
</xsl:template>
</xsl:stylesheet>
请任何人帮助我使用XSLT代码来获得上面的XML输出
如果不首先将前缀(ns0
(绑定到命名空间,则不能使用前缀。尝试更改:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
至:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns0="http://tempuri.org/"
exclude-result-prefixes="ns0">