こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

XMLの実体参照とXSLT

次のようなXMLファイルをXSLTで処理したいのですが、&baseの部分がうまく表示できません。
どのようにしたら表示できるでしょうか?

■a.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="a.xsl"?>
<!DOCTYPE test [
<!ELEMENT name (#PCDATA)>
<!ENTITY base SYSTEM "base.xml">
]>
<test>
<name>abc</name>
&base;
</test>

■base.xml
<?xml version="1.0" encoding="UTF-8"?>
<base>base</base>

■a.xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="UTF-8" />

<xsl:template match="/">
<xsl:apply-templates select="test" />
<xsl:apply-templates select="base" />
</xsl:template>

<xsl:template match="test">
name:<xsl:value-of select="name" />
</xsl:template>

<xsl:template match="base">
base:<xsl:value-of select="base" />
</xsl:template>

</xsl:stylesheet>

□結果
name:abc
※base.xmlの内容を表示できない

投稿日時 - 2007-05-16 19:12:39

QNo.3005403

すぐに回答ほしいです

質問者が選んだベストアンサー

いくつか考えられますが、
まずbase.xmlのxml構造としてルート(base)しかないのが気になります。それと
<xsl:template match="base">
base:<xsl:value-of select="base" />
</xsl:template>
ではなく、
<xsl:template match="base">
base:<xsl:value-of select="." />
</xsl:template>
です。
自分のノードにいる場合、
自分を表示するには、「.」を使用します。

投稿日時 - 2007-05-17 12:25:33

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問