我有两个xml文件,第一个(匹配文件)包含需要提取的id字段。 我需要将此id导出到第二个xml。
first.xml:
<A>
...
<data>blabla<id>15201<id>blabla</data>
...
</A>
seconnd.xml:
<B>
...
<id>4621</id>
...
</B>
预期结果:
<B>
...
<id>15201</id>
...
</B>
我知道匹配第二个文件并首先包含id更容易,但在我的情况下它是不可能的,我必须匹配first.xml
这就是我试图做的事情:
...
<xsl:variable name="id" select="substring-before(substring-after(//*[local-name()='data'], 'id>'), '<')" />
<xsl:variable name="file" select="document('second.xml')" />
...
<xsl:template match="id"><id><xsl:value-of select="$id" /></id></xsl:template>
<xsl:template match="/">
<xsl:copy>
<xsl:copy-of select="$file" />
<xsl:apply-templates />
</xsl:copy>
</xsl:template>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
...
但我仍然得到这个结果(文件被复制,但模板没有被应用):
<B>
...
<id>4621</id>
...
</B>
提前致谢。
答案 0 :(得分:0)
使用
<xsl:template match="/">
<xsl:apply-templates select="$file/node()"/>
</xsl:template>