• 締切済み

XMLからXML

こんにちわ。 以下のやり方がわからなく、困っています。 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 を書けばよいのでしょうか? 申し訳ありませんが、わかる方がいれば教えてください。

みんなの回答

  • nanimania
  • ベストアンサー率36% (34/93)
回答No.2

<xsl:template match="/a"> <xsl:copy-of select="*:text()"/> </xsl:template> これで指定した名前のノード以下(そのノードは含まない)の内容をコピー生成します。

回答No.1

<?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>