-1

新しいタグを追加するためにphpコードを使用するxmlファイル(scores.xml)があります。

HTMLコードを含むHeaderというタグがあります

<![CDATA[<tr><td colspan='7' id='headertd'>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<img border='0' src='images/euro.png' />
&nbsp;&nbsp;&nbsp;&nbsp;
UEFA Euro 2012 Qualifications</td></tr>]]>

このコードを pgp スクリプトの形式で記述し、送信すると、ヘッダー タグを除くすべてが XML ファイルに正常に送信されます。.php スクリプトでエラーが発生し、コードは xml タグで次のようになります。

&lt;![CDATA[&lt;tr&gt;&lt;td colspan='7' id='headertd'&gt;&#13;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#13;
&lt;img border='0' src='images/euro.png' /&gt;&#13;
&nbsp;&nbsp;&nbsp;&nbsp;&#13;
UEFA Euro 2012 Qualifications&lt;/td&gt;&lt;/tr&gt;]]&gt;

それは私のxmlに間違った情報を取得しています... とにかく私はこれを修正できますか? これらのコードの変換を回避しますか?

それは私のphpコードです:

<?php
if (isset($_POST['submitted'])) {//If the user submitted the form, then add to the XML file
    //Load the scores XML file
    $scores = new DOMDocument();
    $scores -> load('../scores.xml');

    //Get the <Games> tag
    $games = $scores -> getElementsByTagName('Games');

    //Create the new <Game> tag 

    $newGame = $scores -> createElement("Game");
    $newGame -> appendChild($scores -> createElement("Header", $_POST['header']));

    //Add the new <Game> tag under the <Games> tag
    $games -> item(0) -> appendChild($newGame);

    //Save again
    $scores -> save('../scores.xml');

    echo "New game added.";
}
?>

<form id="form1" method="post" action="">
Header: <textarea style=" color:#000;" name="header" cols="73" rows="6" > </textarea>
<br><input type="submit" name="submitted" name="Add new row">
</form>

このスクリプトを使用して、自分の Web サイトに簡単に投稿できるようにするためのユーザー インターフェイスはありません。

あなたの助けは大歓迎です!

前もって感謝します!

4

2 に答える 2

2

[編集 2] うーん、間違った答えでごめんなさい、私はそれについて考えていましたが、HTML タグを追加すると xml 構造が台無しになるため、PHP スクリプトがそれを「エンコードされた」形式に変換するのはごく普通のことです。エンコードする必要があります。したがって、後でデータを取得しようとするときは、html_entity_decode() でデコードして、ブラウザーに適切にエクスポートする必要があります。

[編集 1] ご覧のとおり、コンテンツは「エンコード」されているため、データを保存する前に html_entity_decode() でデコードします。そしてここに「最終」コード:

<?php
if (isset($_POST['submitted'])) {//If the user submitted the form, then add to the XML file
    //Load the scores XML file
    $scores = new DOMDocument();
    $scores -> load('../scores.xml');

    //Get the <Games> tag
    $games = $scores -> getElementsByTagName('Games');

    //Create the new <Game> tag 

    $newGame = $scores -> createElement("Game");
    $newGame -> appendChild($scores -> createElement("Header", html_entity_decode($_POST['header'])));

    //Add the new <Game> tag under the <Games> tag
    $games -> item(0) -> appendChild($newGame);

    //Save again
    $scores -> save('../scores.xml');

    echo "New game added.";
}
?>

<form id="form1" method="post" action="">
Header: <textarea style=" color:#000;" name="header" cols="73" rows="6" > </textarea>
<br><input type="submit" name="submitted" name="Add new row">
</form>
于 2012-05-20T19:27:47.307 に答える
1

タグに入れる前に、コンテンツにhtml_entity_decodeを使用してみてください。$_POST['header']<Game>

于 2012-05-20T19:28:02.390 に答える