0

私のブラウザは私に言っています:

error on line 2 at column 308899: Entity 'ntilde' not defined

特定の行は私のxmlに次のように含まれています:

<LastName>Trevi&ntilde;o</LastName>

名前はもともと でしTreviñoたが、php のhtmlentities関数を介して変更されました。

php と xml をうまく動作させるにはどうすればよいですか?


Mac で Chrome 19 を使用しています。

4

5 に答える 5

4

どうやら、htmlspecialcharsそしてhtmlentitiesタンデムで使用することはトリックを行います。

htmlspecialchars(htmlentities($value));
于 2012-06-01T15:54:57.380 に答える
1

実際に XML または HTML を生成していますか? それらは同じものではありません。HTML は一連のエンティティ (IIRC) を定義しますが、XML には「組み込み」がほとんどありませ&amp;&lt;

テキストを直接使用できるのに、なぜ両方ともエンティティを使用するのですか? 使用するエンコーディングに一貫性があることを確認してください (UTF-8 をお勧めします)。

于 2012-05-30T20:59:35.370 に答える
0

XML でチルダ文字をエンコードする必要はありません。エラーがスローされます。この場合の最善の方法は、テキストを CDATA でラップすることです。

<LastName><![CDATA[Trevi&ntilde;o]]></LastName>
于 2012-05-30T20:59:42.107 に答える
0

htmlentities のエンコーディングを指定してみてください

htmlentities($string,ENT_QUOTES,'UTF-8');
于 2012-05-30T21:00:19.720 に答える