php中simplexml

    xiaoxiao2021-03-25  73

    <?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(); }
    转载请注明原文地址: https://ju.6miu.com/read-23970.html

    最新回复(0)