使用xslt更改复制的xml文件中的节点

时间:2016-03-28 01:39:15

标签: xslt

我想从其他xml数据中复制和更改数据。我除了正常的两个输入xml文件外还有一个额外的xml文件。我想将这个xml文件的全部内容嵌入到我的输出xml中,然后更改它的某些方面。我已经设法通过将整个文件复制到正确的区域来实现这一点(感谢这篇文章here):

<test>
<xsl:copy-of select="document('filename.xml')/*"/>
</test>

问题是,我想更改文件名中的一些数据,但我不知道如何完成这项工作。也许沿着这条路线的东西?

    <xsl:template match="document('filename.xml')/root/elemntToBeChanged">
    <xsl:apply-templates select="Test/changeItToThis"/>

1 个答案:

答案 0 :(得分:0)

试试这个, XSLT 2.0:

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="@*|node()">
    <xsl:copy><xsl:apply-templates select="@*|node()"/></xsl:copy>
</xsl:template>

<xsl:template match="root"><!--Input document's root element -->
    <xsl:copy><xsl:apply-templates select="*|document('External-Doc.xml')"/></xsl:copy><!--Extrenal document called here -->
</xsl:template>

</xsl:stylesheet>