これが私の現在のXMLファイル(books.xml)です:
<?xml version="1.0"?>
<books>
<book>
<isbn>123456789098</isbn>
<title>Harry Potter</title>
<author>J K. Rowling</author>
<edition>1</edition>
</book>
</books>
この場合、エディションは1から99までの数字であり、ISBNの長さは本の属性の実際の概念とは異なり12桁であることに注意してください。
「本を追加」フォームがあり、既存のXMLファイルに新しい本を追加して、そのフォームから収集したデータを(postを使用して)保存したいと思います。PHPでこれを行うための最良の方法は何でしょうか?空のノードを保存するか、まったく何もしないかのどちらかで、私が行った方法が半分ずつ機能するため、その方法について混乱しています。
/*************************************
*code snippet of results.php
*************************************/
$doc = new DOMDocument();
$doc->load('books.xml');
$nodes = $doc->getElementsByTagName('books');
if($nodes->length > 0)
{
$b = $doc->createElement( "book" );
$isbn = $doc->createElement( "isbn" );
$isbn->appendChild(
$doc->createTextNode( $book['isbn'] ));
$b->appendChild( $isbn );
$title = $doc->createElement( "title" );
$title->appendChild(
$doc->createTextNode( $book['title'] ));
$b->appendChild( $title );
$author = $doc->createElement( "author" );
$author->appendChild(
$doc->createTextNode( $book['author'] ));
$b->appendChild( $author );
$edition = $doc->createElement( "edition" );
$edition->appendChild(
$doc->createTextNode( $book['edition'] ));
$b->appendChild( $edition );
$doc->appendChild( $b );
}
$doc->save('books.xml');
ご協力ありがとうございました。