- PR -

XSLT変換でInnerXml値の取得

1
投稿者投稿内容
maname
会議室デビュー日: 2003/05/30
投稿数: 2
投稿日時: 2003-10-03 00:37
XMLをXSLTにて変換する際に、下記のようにタグをそのままコピーしたいのですが
value-ofを使うと、DOMで言うところの「InnerText」の値を取得してきます。
「InnerXml」の値を取得する方法はあるのでしょうか?


test.xml
<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="Test.xsl"?>
<Contents>
リンク先に飛ぶときは<A HREF="link.html">ココ</A>を<BR/>クリック。
</Contents>

test.xsl
<?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

<xsl:template match="/">
<HTML><BODY>
<xsl:apply-templates select="Contents" /><P/>
本当は<A HREF="link2.html">このように</A>リンク表示したい。
</BODY></HTML>
</xsl:template>

<xsl:template match="Contents">
<xsl:value-of select="." />
</xsl:template>
</xsl:stylesheet>

結果
<HTML><BODY>
リンク先に飛ぶときはココをクリック。<P/>
本当は<A HREF="link2.html">このように</A>リンク表示したい。
</BODY></HTML>

得たい結果
<HTML><BODY>
リンク先に飛ぶときは<A HREF="link.html">ココ</A>を<BR/>クリック。<P/>
本当は<A HREF="link2.html">このように</A>リンク表示したい。
</BODY></HTML>
ゆう
常連さん
会議室デビュー日: 2003/06/27
投稿数: 45
投稿日時: 2003-10-03 08:52
 XSLTの名前空間がWD版である必要があるのでしょうか?
 もし正式版でも良いのならば、copy-ofを利用すれば良い
と思います。


<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<HTML><BODY>
<xsl:apply-templates select="Contents" /><P/>
本当は<A HREF="link2.html">このように</A>リンク表示したい。 <P/>
<xsl:copy-of select="Contents" /><P/>
</BODY></HTML>
</xsl:template>

<xsl:template match="Contents">
<xsl:value-of select="." />
</xsl:template>
</xsl:stylesheet>
maname
会議室デビュー日: 2003/05/30
投稿数: 2
投稿日時: 2003-10-04 01:36
悠さん、お返事ありがとうございました。
期待の結果を得ることが出来ました。

XSLTの名前空間については何も考えてなかったですが
全然別物なのですね。勉強になりました。
http://www.atmarkit.co.jp/fxml/askxmlexpert/006msxml3/06msxml3.html
1

スキルアップ/キャリアアップ(JOB@IT)