Home > Article > Backend Development > Explain how PHP generates xml source code_PHP tutorial
PHP generates xml just like a tree, adding nodes one by one, you can add multiple child nodes under a parent node,
function madexml()
{
->modelCmsObj->getTemplate(2007); $arrTemp = explode("#",$strTempInfo);
array_shift($arrTemp);
$arrContents = array();
foreach($arrTemp as $k=>$v)
$objDom = new DOMDocument("1.0");
header("Content-Type: text/plain");
//Add elements and text nodes
$root = $objDom-> ;createElement("recommend"); $objDom->appendChild($root); foreach($arrContents as $k=>$v) item = $objDom ->createElement("entry"); $root->appendChild($item); $nextitem1 = $objDom->createElement("simgurl"); $nextitem2 = $objDom ->createElement("imgurl"); $nextitem3 = $objDom->createElement("fileurl");
$item->appendChild($nextitem1); $item-> appendChild($nextitem2);
$item->appendChild($nextitem3); $text = $objDom-> ;createTextNode($v[1]); $text2 = $objDom->createTextNode($v[2]); $nextitem2->appendChild($text1); $nextitem3- >appendChild($text2);
$nextitem1->appendChild($text);
simplexml_load_string把xml串转化为字符串
$string = <<
I know thats the answer -- but whats the question?
XML;
$xml = simplexml_load_string($string);
var_dump($xml);
?>
This script will display:
SimpleXMLElement Object
(
[title] => Forty What?
[from] => Joe
[to] => Jane
[body] =>
I know thats the answer -- but whats the question?
)
如果想把xml转换为数组,先转换为字符串含有键值的字符串,然后再进行循环就可以成为数组了,
/**
* Convert xml to array
* @param unknown_type $xml
*/
private function xml_to_array($xml)
{
$array = (array)(simplexml_load_string($xml,SimpleXMLElement, LIBXML_NOCDATA));
foreach ($array as $key=>$item){
$array[$key] = $this->struct_to_array((array)$item);
}
return $array;
}
private function struct_to_array($item) {
if(!is_string($item)) {
$item = (array)$item;
foreach ($item as $key=>$val){
$item[$key] = self::struct_to_array($val);
}
}
return $item;
}