綾小路龍之介の素人思考

[xhtml] &はあらゆるところで&と記述する

xmlをxsltでxhtmlに変換する際に、どうしてもバグ取りが上手く行かなかった。原因はaタグのhref属性値の中味に&が直接書かれていたからだった。

例えば、ブラウザのアドレスバーから直接コピーしてきた場合にこうなる。これは要注意だなぁ。自作のxslがおかしいか、そもそもxmlがおかしいか。問題点の切り分けに随分と時間がかかってしまった。問題があったのはxml内のCDATAで書いた部分。Operaで表示すると以下のようなエラーが出る。firefoxでは期待通りではないけれど表示される。

This document had an invalid XSLT stylesheet. Error message from the XSLT engine:
Error: invalid XML output: invalid entity reference in attribute value

ミスがあったのは以下。

<a href="http://www.google.com/search?q=xml+amp+href&num=100">xml amp href - Google 検索</a>

正解は以下。

<a href="http://www.google.com/search?q=xml+amp+href&amp;num=100">xml amp href - Google 検索</a>

リファレンス

  1. XHTMLの書き方と留意点
  2. xml amp href - Google 検索

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2009-05-12T00:10:18+09:00
  2. Modified: 2009-05-12T00:10:18+09:00
  3. Generated: 2017-10-07T23:09:17+09:00