在php中操作xml文檔我們可以直接調(diào)用DOMDocument類或使用simplexml_load_string類來操作,這些都不需要加載算是內(nèi)置函數(shù)了,我們直接使用.
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++;
- }
- //開源代碼Vevb.com
- print_R($d);
簡單,容易,速度快,代碼如下:
- $xmlData = file_get_contents('test.xml');
- $xml = simplexml_load_string($xmlData);
- $xmlArr = objectToArray($xml);
objectToArray函數(shù)代碼如下:
- 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://m.survivalescaperooms.com'),
- array('id'=>2,'web'=>'PHP腳本','webUrl'=>'http://m.survivalescaperooms.com/'),
- array('id'=>3,'web'=>'JavaScript腳本','webUrl'=>'http://m.survivalescaperooms.com/'),
- array('id'=>4,'web'=>'js腳本','webUrl'=>'http://m.survivalescaperooms.com/'),
- array('id'=>5,'web'=>'PHP腳本示例','webUrl'=>'http://m.survivalescaperooms.com/'),
- array('id'=>5,'web'=>'JavaScript腳本示例','webUrl'=>'http://m.survivalescaperooms.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);
新聞熱點
疑難解答