0

次の HTML がデータベースに保存されているという問題があります。

Carer £4.20 per person<br />

そして、次のように DOMDocument で XML に出力されています。

$content = htmlspecialchars($page->content);
$xmlDoc = new DOMDocument();
$xmlDoc->formatOutput = true;

//create the root element
$root = $xmlDoc->appendChild(
$xmlDoc->createElement("document"));

$page->appendChild(
$xmlDoc->createElement("content", $content));

その結果

Carer &#xA3;4.20 per person&lt;br /&gt;

ただし、HEX エンコーディングの代わりに、名前付きの HTML エンティティを使用することは可能&pound;ですか?

4

5 に答える 5

1

ただし、HEX エンコーディングの代わりに、名前付きの HTML エンティティを使用することは可能&pound;ですか?

はい、いいえ。まず最初にいいえ。XML を使用しており、XML には&pound;デフォルトでそのような名前付きエンティティが存在しないためです。

はい、代わりに HTML を出力できるためです ;) 例を見てみましょう ( online-demo ):

$content = htmlspecialchars('Carer £4.20 per person<br />');

$doc = new DOMDocument();
$doc->preserveWhiteSpace = false;
$doc->formatOutput = true;


//create the root element
$root = $doc->appendChild(
    $doc->createElement("document")
);

$root->appendChild(
    $doc->createElement("content", $content)
);

echo "Save XML:\n", $doc->saveXML();
echo "\n\nSave HTML:\n", $doc->saveHTML();

そして出力:

Save XML:
<?xml version="1.0"?>
<document>
  <content>Carer &#xA3;4.20 per person&lt;br /&gt;</content>
</document>


Save HTML:
<document><content>Carer &pound;4.20 per person&lt;br /&gt;</content></document>

覚えておいてください: XML には非常に限定された名前付きエンティティのセットがあり、HTML にはさらに多くのエンティティがあります。さらに名前付きエンティティを XML に追加することもできます。興味のある方はご覧ください

于 2013-03-20T15:31:41.287 に答える
0

htmlspecialcharsを削除してみて、何が起こるか見てみましょう。

http://php.net/manual/en/function.htmlspecialchars.php

于 2013-03-20T12:36:51.730 に答える
0

非常に簡単-htmlentities()の代わりに使用するだけですhtmlspecialchars()

http://de2.php.net/manual/en/function.htmlentities.phpを参照してください

ただし、注意が必要です。XMLは!のようなHTMLエンティティを認識していません。&pound;HTMLではなくXMLを出力する場合、数値参照が唯一の解決策です。

于 2013-03-20T12:37:27.083 に答える
0

はい、可能です。ただし、場合によります。

ITビュー」からポンドを見てください。

  • £- ポンドの歌

  • pound- 通貨名

  • &pound;- エンティティ名

  • &#163;- エンティティ コード

では、上からすべての項目を としてマークせずに書きましょうcode。結果とは?

£、ポンド、£、£ - ご覧のとおり、3 番目と 4 番目は £ になりましたが、これは HTML です。私を信じてください、私は嘘をつきません:P

しかし、XML で使用することを強く勧めます。&#163;

さらに詳しい情報が必要な場合は、次の場所にアクセスしてください。

于 2013-03-20T12:38:28.860 に答える
0

XML に非 ASCII 文字が含まれていて、エンコードが指定されていないシングルバイト ANSI (または ASCII) としてファイルが保存されている場合、このエラーが発生します。

于 2013-03-20T12:36:03.960 に答える