Xml 使用xslt从SOAP信封获取属性
你好,我有以下XMLXml 使用xslt从SOAP信封获取属性,xml,xslt,soap,Xml,Xslt,Soap,你好,我有以下XML <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" ... someID="ID123"> <SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/enve
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" ... someID="ID123">
<SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><endpoints>
...
...
假设出于某种奇怪的原因,我在SOAP-ENV:Envelope根标记中有这个属性“someID”。是否可以使用XSLT1.0读取该属性的内容(我希望使用“ID123”)?如果是,如何进行
问候
阿列克斯也许我遗漏了什么,但这应该是直截了当的。要获取SOAP:Envelope元素的属性值,您可以这样做
<xsl:value-of select="/SOAP-ENV:Envelope/@someID" />
不过,您需要确保在XSLT中定义了SOAP-ENV名称空间前缀
如果您想使它更通用,并且不必担心根元素(或名称空间)是什么,您也可以这样做
<xsl:value-of select="/*/@someID" />
如果您已经定位在根元素上,它会变得更简单
<xsl:template match="/*">
<xsl:value-of select="@someID" />
</xsl:template>
第二个解决方案(/*/@someID)为我解决了这个问题。非常感谢你。