使用xslt从SOAP Envelope获取属性

时间:2012-11-16 09:25:22

标签: 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/envelope/"><endpoints>
...

让我们说因为一些奇怪的原因我在SOAP-ENV:Envelope根标签中有这个属性“someID”。是否可以使用XSLT 1.0读取该属性的内容(我想要“ID123”)?如果是,怎么样?

亲切的问候 阿莱克斯

1 个答案:

答案 0 :(得分:0)

也许我错过了什么,但这应该是非常简单的。要在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>