1
私の目標は要素タグを特定の場所に移動することです。助けていただければ幸いです。xsltを使用してxml要素グループ(サブ要素を含む)を特定の階層レベルに移動します。
は、ここに私の入力
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<CHILD>
<C.1>1</C.1>
<C.2>something</C.2>
<C.3>
<A.1>AAA</A.1>
</C.3>
</CHILD>
<CHILD.2>
<ANOTHER.1>
<ID_1>
<PID.1>1</PID.1>
<PID.2>
<CX.1>18</CX.1>
<CX.4>
<HD.1>HHH</HD.1>
</CX.4>
<CX.5>CCC</CX.5>
</PID.2>
</ID_1>
<MOVEME>
<ME.1>1</ME.1>
<ME.2>
<M.1>10</M.1>
<M.2>some text string</M.2>
</ME.2>
<ME.3>MM</ME.3>
</MOVEME>
<ID_3/>
</ANOTHER.1>
<ANOTHER.2>
<RC>
<ORC.1>RR</ORC.1>
</RC>
<BR>
<OBR.1>1</OBR.1>
<OBR.2>
<EI.1>11</EI.1>
<EI.2>EIII</EI.2>
</OBR.2>
</BR>
<BR.1/>
<BR.2/>
</ANOTHER.2>
</CHILD.2>
<CHILD.3/>
</ROOT>
所望の出力、私はこれまでのところ、それは出力を生成していますが、かなり正しくなかった何
<ROOT>
<CHILD>...</CHILD>
<CHILD.2>
<ANOTHER.1>
<ID_1>...</ID_1>
//MOVEME IS NOW GONE
<ID_3/>
</ANOTHER.1>
<ANOTHER.2>...</ANOTHER.2>
</CHILD.2>
<CHILD.3/>
//DESTINATION WITH ALL IT ELEMENTS AND CONTENTS
<MOVEME>
<ME.1>1</ME.1>
<ME.2>
<M.1>10</M.1>
<M.2>some text string</M.2>
</ME.2>
<ME.3>MM</ME.3>
</MOVEME>
</ROOT>
です。その特定のタグにも他の要素が含まれています。 ifステートメント内に不要なタグも含めましたが、まだ動作していません。
どうすればよいですか?
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="ROOT/*">
<xsl:for-each select="*">
<xsl:if test="(name() != 'CHILD') and (name() != 'CHILD.2') and (name() != 'CHILD.3') and (name() != 'ANOTHER.2')" >
<ZEI>
<xsl:apply-templates select="@* | node()"/>
</ZEI>
</xsl:if>
</xsl:for-each>
</xsl:template>
:ここでの考え方は、「移動」、あなたがそれをしたい場所にノードを追加し、それを元の場所にコピーされないようにすることですあなたのXSLTのタグ?あなたの望む出力にそのような要素はありません。 –
ごめんなさい。タグ –
user1998820