とxmlファイル操作します:は、私は以下のようにXMLファイルを持っているPHPとDOM
<?xml version="1.0" encoding="UTF-8"?>
<root version="8.0.0.0">
<songs name="Album">
<row>
<song artist="artist_name">Track1</song>
</row>
<row>
<song artist="artist_name">Track2</song>
</row>
<row>
<song artist="artist_name">Track3</song>
</row>
<row>
<song artist="artist_name">Track4</song>
</row>
</songs>
</root>
を今、私はいくつかのより多くの行でこのファイルを更新したいです。既存の行要素の上にデータを追加する方法は?また、新しい要素を追加している間、Track1、Track2のようなトラックをチェックしたいのですが重複しません。
現在、私はphp:domでこのxmlファイルを操作していますが、既存の行の最後に追加するデータです。上記のことを行うために使用される
PHPコードは、私はそれを行うことができますどのように、私に知らせてください
<?php
//Creates XML string and XML document using the DOM
$dom = new DOMDocument();
$dom->formatOutput = true;
$dom->Load('C:/wamp/www/xml/test1.xml');
$root = $dom->firstChild;
$list = $root->childNodes->item(1);
if(isset($_POST['submit'])){
$artistName = $_POST['name'];
$track = $_POST['track'];
$row = $dom->createElement('row');
$list->appendChild($row);
$song = $dom->createElement('song');
$row->appendChild($song);
$song->setAttribute('artist', $artistName);
$wcm_node = $dom->createTextNode($track);
$song->appendChild($wcm_node);
}
// Code to format XML after appending data
$outXML = $dom->saveXML(); // put string in outXML
//now create a brand new XML document
$xml = new DOMDocument();
$xml->preserveWhiteSpace = false;
$xml->formatOutput = true; //yup, going to try to make this format again
//pass the output of the first bunch of stuff we did to the new XML document:
$xml->loadXML($outXML);
//now display the cleanly formatted output without using LIBXML_NOBLANKS (which may have undesired consequences
$xml->save('test1.xml'); // save as file
}
?>
です。を付加が、を付加しないだ
おかげ
私たちにいくつかのPHPコードをご提示ください – soju
可能DOMは、あまりにもそのための方法を、持っています[PHPのXML挿入要素の複製(または前の)別の要素](http://stackoverflow.com/questions/4723747/php-xml-inserting-element-after-or-before-another-element) – Gordon