あなたの習慣について教えてください!!

こんにちわ。
以下のやり方がわからなく、困っています。
XSLTを使って以下のようなXML→XMLを行いたいのですが。
変更前:
<a>
<b>
<c>abc</c>
<d>def</d>
</b>
</a>
変更後:
<b>
<c>abc</c>
<d>def</d>
</b>

ようするに、指定したタグ以下のXML構造をそのまま取り出したいのです。
<xsl:template match="/a">
<xsl:apply-templates select="b"/>
</xsl:template>
だと中身のabc defしか取れません。
<c>とか<d>は、時によって変わる場合、どのようなXSLT
を書けばよいのでしょうか?
申し訳ありませんが、わかる方がいれば教えてください。

A 回答 (2件)

<xsl:template match="/a">


<xsl:copy-of select="*:text()"/>
</xsl:template>

これで指定した名前のノード以下(そのノードは含まない)の内容をコピー生成します。
    • good
    • 0

<?xml version="1.0"?>


下記でうまく行くはず...。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/a">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="@*|*|text()"><!-- @*|node() -->
<xsl:copy>
<xsl:apply-templates select="@*|*|text()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!