<?php
$data='<rss version="2.0"> <channel> <title>潮州环保公众网</title> <image> <title>www.gdczepb.gov.cn</title> <link>http://www.gdczepb.gov.cn</link> <url>http://www.gdczepb.gov.cn/logo.png</url> </image> <description>潮州环保公众网</description> <link>http://www.gdczepb.gov.cn</link> <language>zh-cn</language> <generator>www.gdczepb.gov.cn</generator> <copyright>Copyright©2014 潮州市环境保护局 版权所有</copyright> <item> <title> <![CDATA[ 刑拘1人!潮安区环保公安深夜突袭非法电解工场 ]]> </title> <author> <![CDATA[ 潮州环保公众网 ]]> </author> <link> <![CDATA[ http://www.gdczepb.gov.cn/detail/24638 ]]> </link> <category> <![CDATA[ 工作动态 ]]> </category> <pubDate> <![CDATA[ 2017-03-10 10:26:42 ]]> </pubDate> <comments/> <description> <![CDATA[ 刑拘1人!潮安区环保公安深夜突袭非法电解工场 ]]> </description> </item> </channel> </rss> ';
$aa=simplexml_load_string($data,'SimpleXMLElement',LIBXML_NOCDATA);
echo "<pre>";
// print_r($aa);
print_r($aa->xpath('channel/item'));
echo "</pre>";
?>
看看是不是可以!直接出结果,直接进入item输出结果,是不是非常简单!下一篇说一说直接从div里面取内容!不需要插件,直接取!采用dom方法,多多交流哦!
对了,这里面还可以删除添加元素,具体的看一下手册,删除的话使用unset。
/**
* 将xml转换为数组
* @param string $xml:xml文件或字符串
* @return array
*/
public function xmlToArray($xml)
{
//考虑到xml文档中可能会包含<![CDATA[]]>标签,第三个参数设置为LIBXML_NOCDATA
if (file_exists($xml)) {
libxml_disable_entity_loader(false);
$xml_string = simplexml_load_file($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
} else {
libxml_disable_entity_loader(true);
$xml_string = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
}
$result = json_decode(json_encode($xml_string), true);
return $result;
}
/**
* 将数组转换为xml
* @param array $arr:数组
* @param object $dom:Document对象,默认null即可
* @param object $node:节点对象,默认null即可
* @param string $root:根节点名称
* @param string $cdata:是否加入CDATA标签,默认为false
* @return string
*/
public function arrayToXml($arr, $dom = null, $node = null, $root = 'xml', $cdata = false)
{
if (!$dom) {
$dom = new DOMDocument('1.0', 'utf-8');
}
if (!$node) {
$node = $dom->createElement($root);
$dom->appendChild($node);
}
foreach ($arr as $key => $value) {
$child_node = $dom->createElement(is_string($key) ? $key : 'node');
$node->appendChild($child_node);
if (!is_array($value)) {
if (!$cdata) {
$data = $dom->createTextNode($value);
} else {
$data = $dom->createCDATASection($value);
}
$child_node->appendChild($data);
} else {
arrayToXml($value, $dom, $child_node, $root, $cdata);
}
}
return $dom->saveXML();
}