PHP DOMDocument实现XML读写操作

作者:袖梨 2022-06-24

是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'=>'https://www.111cn.net'),
array('id'=>2,'web'=>'PHP脚本','webUrl'=>'https://www.111cn.net/'),
array('id'=>3,'web'=>'JavaScript脚本','webUrl'=>'https://www.111cn.net/'),
array('id'=>4,'web'=>'js脚本','webUrl'=>'https://www.111cn.net/'),
array('id'=>5,'web'=>'PHP脚本示例','webUrl'=>'https://www.111cn.net/'),
array('id'=>5,'web'=>'JavaScript脚本示例','webUrl'=>'https://www.111cn.net/')
);
/*使用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);

相关文章

精彩推荐