- - PR -
XSLTで入力XMLの一部ツリーをテキストノードに出力
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-06-27 19:32
XSLTで質問があります。
入力XMLの一部ツリーをエスケープ済文字列として テキストノードに出力させようとしています。 入力 ------------------------------------ <root> <items> <item>a</item> <item>b</item> </items> </root> ------------------------------------ 出力 ------------------------------------ <out> <tree> <items> <item>a</item> <item>b</item> </items> </tree> </out> ------------------------------------ なにかうまい方法は、ありませんでしょか? どうかご教授よろしくお願いします。 XSLTプロセッサ:Xalan | ||||
|
投稿日時: 2004-06-27 22:53
テキストを出力するだけです
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > <xsl:template match="/"> <xsl:call-template name="embed"> <xsl:with-param name="elist" select="*"/> </xsl:call-template> </xsl:template> <xsl:template name="embed"> <xsl:param name="elist"/> <xsl:for-each select="$elist"> <xsl:choose> <xsl:when test="not(node())"> <xsl:copy-of select="."/> </xsl:when> <xsl:otherwise> < <xsl:value-of select="local-name()"/> >: <xsl:call-template name="embed"> <xsl:with-param name="elist" select="*|text()"/> </xsl:call-template> </ <xsl:value-of select="local-name()"/> > </xsl:otherwise> </xsl:choose> </xsl:for-each> </xsl:template> </xsl:stylesheet> =====================================-- mode を使って振り分けるほうが XSLT らしさが増すかもしれません。 -------------------------- こうゆう、議論も忘れずに Escaped Markup Considered Harmful http://www.xml.com/lpt/a/2003/08/20/embedded.html [ メッセージ編集済み 編集者: MMX 編集日時 2004-06-28 08:56 ] | ||||
|
投稿日時: 2004-06-29 01:44
MMXさん、ありがとうございました。
できました。
なるほど、いろいろ弊害がありそうですね。 勉強になりました。奥が深いです。 |
1