2012-02-22 25 views
2

XMLを生成するためにPHPを使用しています。送信されるテキストの一部に引用符を付ける必要があります。私はhtmlentitiesやhtmlspecialchars()を使って引用符を特殊文字に変換することができ、特殊文字はFirefoxやChromeでうまく表示されます。ただし、Internet Explorerでは空白の項目が作成されます。 FirefoxのでXMLで引用符が表示されないInternet Explorer

それは書いている:

<marker description="Yes &quot;I Do"/> 

IEでそれが書いている:

<marker description=""\> 

ここで適切なコードです:

$dom = new DOMDocument("1.0"); 
$node = $dom->createElement("markers"); 
$parnode = $dom->appendChild($node); 
header("Content-type: text/xml"); 

$node = $dom->createElement("marker"); 
$newnode->setAttribute("description", htmlentities("Yes \"I Do")) 
echo $dom->saveXML(); 

申し訳ありませんが、私がしようとしているが、すべてをデバッグし、私は間違って投稿したテキスト。私はhtmlspecialchars()を変更メモとして使用していますが、まだ動作しません。私は&をテストとして試してみましたが、Firefoxでは動作しますがIEでは動作しません。元の入力ミスを申し訳ありません。 - user1098504 14時間前

テストでは、とにかく "はい" I Do"を入れ、IEがまだ壊れていないかどうかを確認します。 - SpikeX 14時間前

私は今働いています。私はhtmlspecialchars()を試していて、&を試してみました。私がテストしていたどこかで、IEで毎回キャッシュをクリアしなかったと思います。強制的にリフレッシュしていても、常にリフレッシュしているとは限りませんでした。オリジナルの問題の一部は、元のデータをコピーしてフォームに貼り付けて、アングルの引用符で終わらせたものでした。これらを変換するためのアイデアはありますか?私はそれがリフレッシュエラーだと思うにもかかわらず、私の問題であなたの助けをもう一度ありがとう。これに

$newnode->setAttribute("description", "Yes "I Do"); 

$newnode->setAttribute("description", "Yes &quot;I Do"); 

はあなたが手で各エンティティを行うにはしたくない場合は、同じことを達成するためにhtmlspecialchars()を使用することができます

+1

明らかに、ユーザが実行しているWebブラウザは、PHPコードの動作に影響を与えません(あなたは 'User-Agent'を見ていませんか?)。あなたの問題は他の場所にあるか、またはあなたが正しく記述していない、ページのXML「ソース」を見て、あなたに見えるものを教えてください。 – Borealid

答えて

0

あなたは、この行を変更する必要があります。

+0

申し訳ありませんが、私はすべてをデバッグしようとしており、間違ったテキストを投稿しました。私はhtmlspecialchars()を変更メモとして使用していますが、まだ動作しません。私はテストとして&quotを試してみましたが、Firefoxでは動作しますがIEでは動作しません。元の入力ミスを申し訳ありません。 – Scott

+0

テストとして、とにかく「はい」"を実行して、IEがまだ壊れていないかどうかを確認してください。 – qJake

関連する問題