У меня есть следующие 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. Очевидно, что xslt у меня не работает, как хотелось бы. Он не добавляет поле Id в поле srccontractid. Спасибо заранее.
Спасибо, что сделал. Я не хотел размещать весь массивный xml, и только рука напечатала его, следовательно, ошибки. Ваше решение сработало. Я не понимал, что контекст необходим. –
@ rk540 Добро пожаловать. Пожалуйста, подумайте о том, чтобы принять ответ, который вы нашли, был наиболее полезным. –