如何从xml中填充xslt的属性

时间:2016-02-06 07:24:19

标签: xml xslt

我正在尝试将xml的值添加到xslt的属性中。尝试了各种解决方案,但没有一个工作。请参阅下面的XML和相应的XSLT代码。

XML:

    <root>
    <orderNo>123</orderNo>
    </root>

XSLT:

<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output omit-xml-declaration="yes"/>
    <xsl:template match="/">
      <soapenv:Envelope xmlns:read="http:/xxxxxx" 
          xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
        <soapenv:Header/>
        <soapenv:Body>
          <read:Shipment 
            orderNo="<xsl:select="/jsonToXML[@orderNo]"/>" 
            ShipNode="?">
        </soapenv:Body>
      </soapenv:Envelope>
    </xsl:template>
  </xsl:stylesheet>

尝试了各种解决方案,但没有一个正在发挥作用。

2 个答案:

答案 0 :(得分:1)

尝试AVT ...

<read:Shipment orderNo="{root/orderNo}" ShipNode="?"/>

另请注意,AVT中的XPath已更改。没有jsonToXML元素,orderNo是元素,而不是属性。

答案 1 :(得分:-2)

你试过吗?

<xsl:value-of select="name/@orderNo" />