我有以下XMLXSLT使用兄弟節點生成XML
<FRA>
<Id>USD Libor Futures</Id>
<PriceBasis>EuroDollar</PriceBasis>
</FRA>
我想下面的輸出
<FRA>
<Id>USD Libor Futures</Id>
<PriceBasis>EuroDollar</PriceBasis>
<ModifyMktData srcontractid="USD Libor Futures Convexity" optype="add" srctype="Spread" dsttype="Price"/>
</FRA>
我使用下面的XSLT:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
<xsl:output method="xml" indent="yes"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="FRA/PriceBasis">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
<xsl:variable name="fraid" select="Id"/>
<ModifyMktData>
<Update srccontractid="{$fraid} Convexity" optype="add" srctype="Spread" dsttype="Price"/>
</ModifyMktData>
</xsl:template>
</xsl:stylesheet>
xslt的輸出如下所示:
<FRA>
<Id>USD LIBOR Futures</Id>
<PriceBasis>EuroDollar</PriceBasis>
<ModifyMktData>
<Update srccontractid=" Convexity" optype="add" srctype="Spread" dsttype="Price" />
</ModifyMktData
</FRA>
我基本上是想重用ModifyMktData屬性中的Id。顯然,我有xslt不能正常工作,因爲我喜歡它。它不會將Id字段添加到srccontractid字段。 在此先感謝。
謝謝你做到了。我不想發佈我的整個大規模的XML,只是手輸入它,因此錯誤。您的解決方案奏效我沒有意識到上下文是必要的。 – 2014-09-24 18:22:05
@ rk540不客氣。請考慮接受你發現的答案是最有幫助的。 – 2014-09-24 21:03:35