我正在尝试使用SimpleXML写入现有的XML文件(就像Matthew在how to write into existing xml file using php中说的那样),除了我的XML文件有更多的项目(这不是我的XML文件的实际结构,我我只是以它为例)。
<Books>
<Authors>
<WeiMengLee>
<Book>Beginning iOS 4 Application Development</Book>
</WeiMengLee>
</Authors>
</Books>
所以我的问题是,如何在PHP中使用SimpleXML向“WeiMengLee”项添加新的“Book”?
答案 0 :(得分:1)
作为vascowhite已经在上面说过,重新考虑你的xml文件的结构。无论如何,这里有一些代码,打开xml文件,遍历wei meng lee部分中的所有可用书籍并打印出他们的标题,然后在该部分添加一本新书,最后将文件保存回磁盘。确保web服务器执行php脚本的用户可以写入xml文件。
//read info from xml file to structured object
$xml = new SimpleXMLElement('bla.xml', null, true);
//loop all available books for wei meng lee
foreach( $xml->Authors->WeiMengLee->Book as $book)
{
//print book title + newline
print $book . "<br />";
}
//add a new book entry to your xml object
$xml->Authors->WeiMengLee->addChild("Book", "HERE GOES THE TITLE");
//save the changes back to the xml file
//make sure to set proper file access rights
//for bla.xml on the webserver
$xml->asXml('bla.xml');
希望这有助于8)
答案 1 :(得分:0)
您需要确定您的xml是关于书籍还是关于作者。
如果是书籍,那么它应该是这样的: -
<?xml version="1.0"?>
<books>
<book>
<title>Beginning iOS 4 Application Development</title>
<author>WeiMengLee</author>
</book>
</books>
然后你可以添加这样一本新书: -
$xml = new SimpleXMLElement("filename.xml", null, true);
$book = $xml->addChild('book');
$book->addChild('title', 'Another Book');
$book->addChild('Author', 'WeiMengLee');
$xml->asXML('filename.xml');
输出: -
<?xml version="1.0"?>
<books>
<book>
<title>Beginning iOS 4 Application Development</title>
<author>WeiMengLee</author>
</book>
<book>
<title>Another Book</title>
<Author>WeiMengLee</Author>
</book>
</books>
另一方面,如果你的xml是关于作者的,那么它应该是这样的: -
<?xml version="1.0"?>
<authors>
<author>
<name>WeiMengLee</name>
<books>
<book>Beginning iOS 4 Application Development</book>
</books>
</author>
</authors>
你会添加另一本书: -
$xml = new SimpleXMLElement("filename.xml", null, true);
foreach($xml as $author){
if($author->name == 'WeiMengLee'){
$weimenglee = $author;
}
}
$weimenglee->books->addChild('book', 'Another book');
$xml->asXML('filename.xml');
输出: -
<?xml version="1.0"?>
<authors>
<author>
<name>WeiMengLee</name>
<books>
<book>Beginning iOS 4 Application Development</book>
<book>Another book</bmook>
</books>
</author>
</authors>