0
我有兩個xml文件,第一個(匹配的文件)包含需要提取的id字段。 我需要將此id導出到第二個xml。XSLT:從另一個文件複製並應用模板
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>
感謝。
它的工作,謝謝! 你能告訴我 和 有什麼區別嗎? –
用' '將文件'$ file'複製到輸出,完全不變和未處理。而你的' '只處理你不想處理的原始輸入文檔,除了提取id的值。 –
感謝@Martin現在我明白了 –