プロが教えるわが家の防犯対策術!

xsl 内で xhtml を使用する際に、 などの実体参照のエンティティ宣言をしたいのですが、方法がわかりません。パーサは libxslt(AxKit) です。

例えばこんな感じかな、と思うのですが・・。

<?xml version="1.0" encoding="EUC-JP" ?>

<!DOCTYPE html [
<!ENTITY nbsp " ">
]>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="EUC-JP"/>

<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="root">
<html>
<head>
......

A 回答 (2件)

質問の中で <!DOCTYPE html [ <!ENTITY nbsp " "> ]> (document element typeがhtml)と書かれているため、をスタイルシート内で使いたいのか、それとも出力される文書の中にentityの宣言を含めたいのか、よく分からないのですが。



もしスタイルシートの中で使いたいだけならば、FlossenEngelさんの回答のとおりで解決するはず(べき)です。XTではスタイルシートの中でを使えるようになることを確認できました。本当に正しい書き方をしているのにパーサがエラーを吐くならば、他のパーサを使って下さいとしか...

ただ、XSLTでは(正確な書き方をすればXPathのデータモデルでは)、entity referenceの形であっても、参照される文字を入れたのとまったく同等に扱われ、entity referenceを使う代わりに半角スペースを入れてもまったく同等なので、あまり意味がないです。もちろん、他のentity referenceを考えていて、この質問では簡単のためにnbspでの例を使ったならば、私の指摘はまったくのおせっかいですが。
    • good
    • 0

<?xml version="1.0"?>


<!DOCTYPE xsl:stylesheet [<!ENTITY nbsp " ">]>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
でできないでしょうか…。

この回答への補足

試したのですが、パーサがエラーを吐くようです。うーん・・

補足日時:2002/07/16 20:01
    • good
    • 0

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