私は XSLT に取り組んでいます。そこでは、2 つの xml 間をトラバースし、任意のタグの下に xml 全体をコピーする必要があります。
メイン XML:
<Content xmlns="some name space">
<message>abcd/<message>
<group xlink:href="Some link"></group>
</Content>
リンクされた XML:
<Content xmlns="linked xml name space">
<text>
<strong xmlns="http://www.w3.org/1999/xhtml">Hello</strong>
<br xmlns="http://www.w3.org/1999/xhtml"></br>
1. Hi
<br xmlns="http://www.w3.org/1999/xhtml"></br>
2. Hi all
<br xmlns="http://www.w3.org/1999/xhtml"></br>
3. Bye
</text>
</Content>
指定された xml 要素の下にある xml 構造全体を取得したい。
必要な出力。
<AAA>
<msg>abcd</msg>
<data>
<strong xmlns="http://www.w3.org/1999/xhtml">Hello</strong>
<br xmlns="http://www.w3.org/1999/xhtml"></br>
1. Hi
<br xmlns="http://www.w3.org/1999/xhtml"></br>
2. Hi all
<br xmlns="http://www.w3.org/1999/xhtml"></br>
3. Bye
</data>
</AAA>
書かれた XSLT:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:simple="some name space" xmlns:link="linked xml name space" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xh="http://www.w3.org/1999/xhtml">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" />
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes" />
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="simple:Content">
<AAA>
<msg>
<xsl:apply-templates select="simple:key" />
</msg>
<xsl:variable name="LINKED_COMPONENT" select="simple:group/document(@xlink:href)" />
<data>
<xsl:apply-templates select="$LINKED_COMPONENT//link:text"/>
</data>
</AAA>
</xsl:template>
<xsl:template match="*">
<xsl:copy>
<!-- descend -->
<xsl:apply-templates />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
出力を得た:
<AAA>
<msg>abcd</msg>
<data>
<text xmlns="linked xml name space">
<strong xmlns="http://www.w3.org/1999/xhtml">Hello</strong>
<br xmlns="http://www.w3.org/1999/xhtml"></br>
1. Hi
<br xmlns="http://www.w3.org/1999/xhtml"></br>
2. Hi all
<br xmlns="http://www.w3.org/1999/xhtml"></br>
3. Bye
</text>
</data>
</AAA>
「テキスト」タグもここにコピーされます。これらのタグをコピーしたくありません。
誰でもそれを修正するのを手伝ってもらえますか。