我想写一个PHP脚本来修改我的XML文件。
我将节点内的productId作为属性,我想解析整个文件并将其转换为单独的节点。我想读取节点的属性并把属性放到它自己的节点中。但其余节点将保持原样。
:
<product id="123">
<name>bob</name>
<lastname>tim</lastname>
</product>
:
<product>
<id>123</id>
<name>bob</name>
<lastname>tim</lastname>
</product>
我可以在PHP中这样做吗?请记住,该文件将包含超过1000个独立的产品。
你可以这样做。
$xml = new SimpleXMLElement('<product id="123"></product>');
if(!empty($xml['id'])) {
$xml->addChild('id', $xml['id']);
unset($xml['id']);
}
echo $xml->asXML();
输出:<?xml version="1.0"?>
<product><id>123</id></product>
下面是手册的链接和addchild函数的链接。http://php.net/manual/en/class.simplexmlelement.php
http://php.net/manual/en/simplexmlelement.addchild.php
如果你有多个产品,你可以像这样循环。
$xml = new SimpleXMLElement('<proudcts><product id="123"></product><product id="234"></product></proudcts>');
foreach($xml as $key => $data){
if(!empty($data['id'])) {
$data->addChild('id', $data['id']);
unset($data['id']);
}
}
echo $xml->asXML();
输出:<?xml version="1.0"?>
<proudcts><product><id>123</id></product><product><id>234</id></product></proudcts>