私は複雑な階層構造のXMLファイルを持っています。これは文書fileName.xml
でコピーします。私は他の要素に新しい要素を挿入したい。対象要素は、入力ファイルに基づいて計算します。concat('b_',$id)
です。たとえばについてはxsltの指定された要素に要素を挿入する方法は?
ファイル名.xml:
<root>
<transform id="b_0">
<transform id="b_1">
<transform id="b_2">
<transform id="b_3"/>
<transform id="b_4"/>
</transform>
</transform>
</transform>
</root>
これは結果文書の例である:
<root>
<transform id="b_0">
<transform id="obj_1"/>
<transform id="b_1">
<transform id="b_2">
<transform id="b_3">
<transform id="obj_2"/>
</transform>
<transform id="b_4"/>
</transform>
</transform>
</transform>
</root>
私のXSLTコードのパターン:すべての
<xsl:variable name="transforms" select="document('fileName.xml')"/>
<xsl:variable name="table" select="."/>
<xsl:template match="tr">
<xsl:variable name="param" select="$table//tr/td[2]"/>
<xsl:variable name="id" select="concat('b_',$param)"/>
<xsl:copy-of select="$transforms"/>
<xsl:copy>
<Transform>
<xsl:attribute name="id"><xsl:value-of select="concat('obj_', position())"/></xsl:attribute>
<xsl:apply-templates select="$transforms/transform[@id = $id]"/>
</Transform>
</xsl:copy>
</xsl:template>