XMLの最近のブログ記事

RDFを吐くプログラムをつくってて、ちょっとハマッたのでメモ。

例えば

<rdf:li rdf:resource="http://www.example.net/hoge.php?id=12345&cmd=add" />

というような書き方をすると、RDFとして認識してくれない。
というより、XMLとしてエラーになるようだ。

試しに、Firefoxに食わせてみると

XML パースエラー: 整形式になっていません

というようなエラーが出る。

この原因は、どうも "&" という文字にあるらしい。

XML文中にこの文字があると、その先を別の文字への置き換えとみなそうとするらしい。
&lt; とか &gt; とか &quot; とか &apos; というやつね。

上記の場合、"&cmd=" などという定義はないので、そこでエラーになる。

XML文中に現れる "&" は、全て "&amp;" に置換する必要がある。

URLも全てこれに置き換えないといけないというのは参ったですよ。
だって、別のURLになっちゃうじゃん?って思うでしょ。
でも "&amp;" って書けば、ちゃんと "&" で認識してくれる。

PHPでやる場合、文字列の部分は htmlspecialchars をかけてやればOK。

これは罠だ。

2017年2月

      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28        

最近のブログ記事

アーカイブ

Powered by Movable Type 5.2.10