2

PHPを使用してレコードを追加、編集、および削除するためのフォーム/テーブルを作成したいxmlファイルがあります。

すべての結果を表示し、XML ファイル内の完全なレコードを表すテーブルの特定の行を編集または削除できるテーブルを作成する方法はありますか?

PCでxmlファイルを編集してFTPにアップロードせずに、Webブラウザのみを使用してタグを追加/編集/削除できるようにしたい..

PHP、javascript、またはその他の方法でこれを行う必要があります。

simpleXML coz のリンクを提供しないでください。

誰かが私を助けてくれれば幸いです!ありがとう!

私のxmlファイル(scores.xml)は次のようになります:

<Games>
<Game>
<Header> </Header>
<Row>B</Row>
<Date>07.10.2011 01:05</Date>
<Time>Finished</Time>
<HomeTeam>Team1</HomeTeam>
<Score>1 - 3</Score>
<AwayTeam>Team2</AwayTeam>
<InfoID>info2</InfoID>
<InfoData> </InfoData>
<Other> </Other>
</Game>
</Games>
4

2 に答える 2

2

これは、SimpleXMLを使用せずにPHPでXMLを使用する非常に単純な例ですが、SimpleXMLの方がはるかに簡単です。

<?php
//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 (Could probably be done better by first placing everything in an array or something)
$newGame = $scores -> createElement("Game");
$newGame -> appendChild($scores -> createElement("Time", "Finished"));
$newGame -> appendChild($scores -> createElement("Score", "2 - 5"));
$newGame -> appendChild($scores -> createElement("Row", "B"));

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

//Save again
$scores -> save('scores.xml');
?>
于 2012-05-17T16:43:21.237 に答える
1

SimpleXML ライブラリを正しく使用していない可能性があります。Game->Other (現在は空) にコンテンツを追加しようとする場合、この簡単な例を見てください。

$xml = <<<XML
<Games>
<Game>
<Header> </Header>
<Row>B</Row>
<Date>07.10.2011 01:05</Date>
<Time>Finished</Time>
<HomeTeam>Team1</HomeTeam>
<Score>1 - 3</Score>
<AwayTeam>Team2</AwayTeam>
<InfoID>info2</InfoID>
<InfoData> </InfoData>
<Other> </Other>
</Game>
</Games>
XML;

// first convert the existing XML into a SimpleXML Object
$xmlObj = new SimpleXMLElement($xml);
echo "<pre>".print_r($xmlObj, true)."</pre>";

// update Other
$xmlObj->Game->Other = "lolz";
echo "<pre>".print_r($xmlObj, true)."</pre>";

// return as XML
$xml = $xmlObj->asXML();
echo "<pre>$xml</pre>\n";

$xml の内容は、完全に最新の XML になりました。ここで、複数のゲームがある場合は、次のようにして Game ノードを反復処理する必要があります。

foreach($xmlObj->Game as $game) $game->Other = "Lolz";

これにより、すべてのゲームの Other タグがテキスト Lolz で更新されます。明らかにこれはあまり便利ではありませんが、ある種の識別子を割り当てるか、何らかのロジックを実行して、必要なノードのみを更新するようにしてください。とにかく、あなたの基本的な例では、これはうまくいくはずであり、問​​題を解決するための出発点になるはずです. 幸運を :)

于 2012-05-17T16:19:10.703 に答える