Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 使用xslt从SOAP信封获取属性_Xml_Xslt_Soap - Fatal编程技术网

Xml 使用xslt从SOAP信封获取属性

Xml 使用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

你好,我有以下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/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)为我解决了这个问题。非常感谢你。