我想用XSL表格複製XML文件。通過複製我想「匿名化」我的XML文件,將XML的一些元素作爲變量。XSLT複製副本
基地:
<?xml version="1.0" encoding="ISO-8859-15"?>
<root>
<top>
<nbpeople>2</nbpeople>
</top>
<people>
<id>45</id>
<name>MARTIN</name>
<firstname>Jean</firstname>
<xyx>
<oo>BLABLA</oo>
<cp>11222</cp>
</xyx>
</people>
<people>
<id>98</id>
<name>DUPONT</name>
<firstname>Yves</firstname>
<xyx>
<oo>POPOPO</oo>
<cp>33450</cp>
</xyx>
</people>
</root>
結果:
<?xml version="1.0" encoding="ISO-8859-15"?>
<root>
<top>
<nbpeople>2</nbpeople>
</top>
<people>
<id>45</id>
<name>people 45</name>
<!-- {xyx/cp + id} = 11222 + 45 = 11267 -->
<firstname>Jean 11267</firstname>
<xyx>
<oo>BLABLA</oo>
<!-- {id + 20000} = 45 + 20000 = 20045 -->
<cp>20045</cp>
</xyx>
</people>
<people>
<id>98</id>
<name>people 98</name>
<!-- {xyx/cp + id} = 33450 + 98 = 11267 -->
<firstname>Yves 33548</firstname>
<xyx>
<oo>POPOPO</oo>
<!-- {id + 20000} = 98 + 20000 = 20098 -->
<cp>20098</cp>
</xyx>
</people>
</root>
我真正的XML文件,顯然是比較複雜的。
編輯: 我不希望像一個XSL:
<xsl:template match="people/name">
<xsl:variable name="id" select="../id" />
<xsl:copy>
<xsl:value-of select="concat('people ', $id)" />
</xsl:copy>
</xsl:template>
<xsl:template match="people/firstname">
<xsl:variable name="id" select="../id" />
<xsl:copy>
<xsl:value-of select="concat(text(), $id)" />
</xsl:copy>
</xsl:template>
OR
<xsl:template match="people/name">
<xsl:copy>
<xsl:value-of select="concat('people ', ../id)" />
</xsl:copy>
</xsl:template>
<xsl:template match="people/firstname">
<xsl:copy>
<xsl:value-of select="concat(text(), ../id)" />
</xsl:copy>
</xsl:template>
我有很多處理的做,在幾個層次上覆雜的文件。這將是難以管理的。
感謝的
「*以XML的一些元素作爲變量*」這並不意味着什麼。在XSL轉換過程中可以使用變量。當轉換結束時,變量不再存在。 –
您能否解釋一下爲什麼不希望顯示一個XSLT?謝謝。 –
我有很多處理要做,並在幾個級別上有一個複雜的文件。這將是難以管理的。 – ras88