作者:陈俊凯660638 | 来源:互联网 | 2013-04-22 17:18
php生成xml就像树一样,逐个添加节点,可以在一个父节点下添加多个子节点,functionmadexml(){//获取模板信息$strTempInfo=$this-modelCmsObj-getTemplate('2007');$arrTemp=explode(#,$strTempI
php生成xml就像树一样,逐个添加节点,可以在一个父节点下添加多个子节点, function madexml()
- {
-
- $strTempInfo = $this->modelCmsObj->getTemplate('2007');
- $arrTemp = explode("#",$strTempInfo);
- array_shift($arrTemp);
- $arrContents = array();
- foreach($arrTemp as $k=>$v)
- {
- $arrContents[$k]=explode(",",$v);
- }
-
- $objDom = new DOMDocument("1.0");
- header("Content-Type: text/plain");
-
- $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);
- $text1 = $objDom->createTextNode($v[0]);
- $text = $objDom->createTextNode($v[1]);
- $text2 = $objDom->createTextNode($v[2]);
- $nextitem2->appendChild($text1);
- $nextitem3->appendChild($text2);
- $nextitem1->appendChild($text);
- }
-
- echo $objDom->saveXML();
- }
simplexml_load_string把xml串转化为字符串
- $string = <<
- '1.0'?>
-
-
- Joe
- Jane
-
- I know that's the answer -- but what's 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 that's the answer -- but what's the question?
- )
-
如果想把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;
- }