如何使用php在xml文件中插入数据?

时间:2010-12-28 23:07:40

标签: php xml dom insert-update

<?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;

有人可以帮忙插入和更新。谢谢!

2 个答案:

答案 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对象可能更容易。拿起来要快一点。

http://us.php.net/simplexml

然后你可以

$xml = new SimpleXMLElement('<root></root>');
$xml->addChild('test_node_name', 'value');
$xml->test_node_name = 'new_value';
echo $xml->test_node_name;

使用此方法可以处理多个具有相同名称的子元素,就像处理数组一样,这样您就可以遍历它们,或者通过索引访问它们。您还可以从文件或字符串创建simplexml对象。看看吧。