<?xml version="1.0" encoding="UTF-8"?>
<root></root>
这是我的xml文件。我想在标签之间使用dom方法插入更新数据。我是php和Xml技术的初学者。我成功创建并读取了此文件,但无法使用php输入数据。
创建代码如下: -
$doc = new DOMDocument('1.0', 'UTF-8');
$ele = $doc->createElement( 'root' );
$ele->nodeValue = $uvar;
$doc->appendChild( $ele );
$test = $doc->save("$id.xml");
阅读代码如下: -
$xdoc = new DOMDocument( );
$xdoc->Load("$gid.xml");
$candidate = $xdoc->getElementsByTagName('root')->item(0);
$newElement = $xdoc ->createElement('root');
$txtNode = $xdoc ->createTextNode ($root);
$newElement -> appendChild($txtNode);
$candidate -> appendChild($newElement);
$msg = $candidate->nodeValue;
有人可以帮忙插入和更新。谢谢!
答案 0 :(得分:0)
有时PHP + XML可能有点不舒服。大多数时候我发现这段代码很有用(根据你的情况重写一下):
$array = array('anxmltag'=>'hello everybody','anothertag'=>'content','lasttag'=>'maybe');
$doc = new DOMDocument('1.0','UTF-8');
$root = $doc->createElement('root');
$doc->appendChild($root);
foreach($array as $key=>$value) {
$root->appendChild($dom->createElement($key))->appendChild($dom->createTextNode($value));
}
$doc->save("$id.xml");
您可能希望扩展此代码以编写二级XML标记。
答案 1 :(得分:0)
我对DOMDocument类没有多少经验,但使用simpleXML对象可能更容易。拿起来要快一点。
然后你可以
$xml = new SimpleXMLElement('<root></root>');
$xml->addChild('test_node_name', 'value');
$xml->test_node_name = 'new_value';
echo $xml->test_node_name;
使用此方法可以处理多个具有相同名称的子元素,就像处理数组一样,这样您就可以遍历它们,或者通过索引访问它们。您还可以从文件或字符串创建simplexml对象。看看吧。