PHP DOMDocument实现XML读写操作
在php中操作xml文档我们可以直接调用DOMDocument类或使用simplexml_load_string类来操作,这些都不需要加载算是内置函数了,我们直接使用.
PHP脚本读取XML最原始,最笨的方法,代码如下:
$doc = new DOMDocument();
$doc->load('test.xml');
$rows = $doc->getElementsByTagName("ds");
$d = array();
$i = 0;
foreach($rows as $row)
{
$web = $row->getElementsByTagName('web');
$webUrl = $row->getElementsByTagName('webUrl');
$d[$i]['web'] = $web->item(0)->nodeValue;
$d[$i]['webUrl'] = $webUrl->item(0)->nodeValue;
$i++;
}
print_R($d);简单,容易,速度快,代码如下:
$xmlData = file_get_contents('test.xml');
$xml = simplexml_load_string($xmlData);
$xmlArr = objectToArray($xml);objectToArray函数代码如下:
function objectToArray($object)
{
if(!$object) return '';
$result = array();
$object = is_object($object) ? get_object_vars($object) : $object;
foreach ($object as $key => $val) {
$val = (is_object($val) || is_array($val)) ? objectToArray($val) : $val;
$result[$key] = $val;
}
return $result;
}上面讲到了读取xml,下面再介绍写xml实例,代码如下:
$arr = array(
array('id'=>1,'web'=>'好脚本','webUrl'=>'http://www.phprm.com'),
array('id'=>2,'web'=>'PHP脚本','webUrl'=>'http://www.phprm.com/'),
array('id'=>3,'web'=>'JavaScript脚本','webUrl'=>'http://www.phprm.com/'),
array('id'=>4,'web'=>'js脚本','webUrl'=>'http://www.phprm.com/'),
array('id'=>5,'web'=>'PHP脚本示例','webUrl'=>'http://www.phprm.com/'),
array('id'=>5,'web'=>'JavaScript脚本示例','webUrl'=>'http://www.phprm.com/')
);
/*使用dom生成xml,注意生成的xml中会没有空格。*/
$dom=new DOMDocument('1.0','utf-8');
$path= "logs/test.xml";
$data=$dom->createElement('data');
$dom->appendChild($data);
foreach($arr as $v)
{
$ds = $dom->createElement('ds');
$id = $dom->createAttribute('id');
$id->nodeValue = $v['id'];
$ds->setAttributeNode($id);
$data->appendChild($ds);
foreach($v as $kk=>$vv)
{
${$kk} = $dom->createElement($kk);
$value= $dom->createTextNode($vv);
${$kk}->appendChild($value);
$ds->appendChild(${$kk});
}
}
$dom->saveXML();
$dom->save($path);教程链接:http://www.phprm.com/develop/fs4532.html
随意转载~但请保留教程地址★