1

私は初めてですXMLHttpRequestが、それを使用してサーバーから時計を更新することに成功しましたGET

今、私は送受信する必要がPOSTありますXML。私PHPのサーバーでは投稿を受信し、XML 形式でデータを送り返していますが、XML 要素に html のようなコードが含まれている場合、奇妙な問題があります。responseXML は、html コードから切り取られた要素のテキストを最後まで配信します。

関連するコードは次のとおりです。

PHP 送信 XML:

header( 'Content-type: text/xml' );
echo '<?xml version="1.0"  encoding="UTF-8"   ?>'; 
echo "<posts>"; 
echo "<textblock>Block with html<br />Next line in block</textblock>"; 
echo "<inputline>input line</inputline>";
echo "</posts>";  

Firebug による完全な XML 応答 (すべてのデータがそこにあることに注意してください)

<?xml version="1.0"  encoding="UTF-8"   ?><posts><textblock>Block with html<br />
Next line in block</textblock><inputline>input line</inputline></posts>

ブラウザーに戻ると、受信した JS 変数は「Block with html」を取得しますが、他には何もありません。 HttpPostExchは XMLHttpRequest です

var received = 
HttpPostExch.responseXML.getElementsByTagName("textblock")[0].firstChild.data;

次の要素、inputline は問題なく使用できます。上記はFF16の場合で、IE8でも同じです。HTMLだから私はコードをに含めるために何か間違ったことをしているはずXMLです。

HTMLが存在するときにコードがそれを行う理由はありますか?

4

2 に答える 2

0

XML は要素のテキストで山括弧を受け入れないため、HTML テキストを送信できません。それは不必要な制限だと思います。要素の末尾を HTML タグと区別するのは簡単です。

于 2012-11-23T05:05:12.347 に答える