この記事は3年以上前に書かれた記事です。情報が古い可能性があります。
RDF を吐くプログラムをつくってて、ちょっとハマッたのでメモ。
例えば
<rdf:li rdf:resource="http://www.example.net/hoge.php?id=12345&cmd=add" />
というような書き方をすると、RDFとして認識してくれない。というより、XMLとしてエラーになるようだ。
試しに、Firefoxに食わせてみると
XML パースエラー: 整形式になっていません
というようなエラーが出る。
この原因は、どうも “&” という文字にあるらしい。XML文中にこの文字があると、その先を別の文字への置き換えとみなそうとするらしい。< とか > とか " とか ' というやつ。
上記の場合、”&cmd=” などという定義はないので、そこでエラーになる。要は、XML文中に現れる “&” は、全て “&” に置換する必要がある。
PHP でやる場合、文字列の部分は htmlspecialchars をかけてやればOK。