⑴ php怎样读取xml中的cdata数据
代码可以这样:
loadxml($string);
//班台
$bantai=array(
'title'=>$xml->getelementsbytagname('channel')->item(0)->childnodes->item(1)->nodevalue,
'link'=>$xml->getelementsbytagname('channel')->item(0)->childnodes->item(3)->nodevalue
);
for($i=0;$i$xml->getelementsbytagname('item')->item($i)->childnodes->item(1)->nodevalue,
'link'=>$xml->getelementsbytagname('item')->item($i)->childnodes->item(3)->nodevalue
);
}
print_r($bantai);
print_r($title);
endif;
?>
⑵ PHP SimpleXML怎么创建cdata
可以解析,如下:
http://hi..com/yinqinlong502/item/e4dfc900a977ed1acc34eae9
php 解析xml遇到cdata怎么办
用$rss = simplexml_load_file ( '11111.xml', 'SimpleXMLElement', LIBXML_NOCDATA );哎就为了这么个函数我还去写正则准备替换了,白白废了我两小时,shit!!!以后多注意下那些函数的可选参数吧。长点教训.
直接输入xml内容为参数的也支持CDATA的解析,如下:
view plainprint?
$rss = simplexml_load_file ( '11111.xml', 'SimpleXMLElement', LIBXML_NOCDATA );
$xmlCode = simplexml_load_string($this->xmlContents, 'SimpleXMLElement', LIBXML_NOCDATA);
⑶ php 解析xml
亲手打的,经过测试的,采纳吧
<?php
header("Content-type: text/html; charset=utf-8");
$xml = '<?xml version="1.0" encoding="utf-8"?><rss version="5.0"><list page="1" pagecount="1" pagesize="20" recordcount="1"><video><last>2014-7-11 12:08:07</last><id>19393</id><tid>7</tid><name><![CDATA[越轨追击]]></name><type>爱情</type><pic>http://img.jijizy.com/upload/vod/2014-07-11/20147111274361461.jpg</pic><lang>英语</lang><area>欧美</area><year>2005</year><state>0</state><note><![CDATA[HD]]></note><actor><![CDATA[克里夫·欧文 詹妮弗·安妮斯顿]]></actor><director><![CDATA[米凯尔·哈弗斯特罗姆]]></director><dl><dd flag="jjvod"><![CDATA[HD$jjhd://20000||越轨追击HD中字1280高清.rmvb$jjvod]]></dd></dl><des><![CDATA[他又无法求助于警察,他现在必须找到露辛达,依靠两个人的力量夺回曾经宁静的生活。]]></des></video></list></rss>';
$result = simplexml_load_string($xml);
//var_mp($result); //可以打印看看结果如何
$result = object_to_array($result);
//print_r($result['list']['video']);exit;
foreach($result['list']['video'] as $key=>$v){
echo $key."=".$v."\n";
}
function object_to_array($obj){
$arr = array();
$_arr = is_object($obj)? get_object_vars($obj) :$obj;
foreach ($_arr as $key => $val){
$val=(is_array($val)) || is_object($val) ? object_to_array($val) :$val;
$arr[$key] = $val;
}
return $arr;
}
?>
⑷ php如何提取xml里面的CDATA的内容
$dom=new DOMDocument;
$dom->loadXML($mapabcXML);
$s=simplexml_import_dom($dom);
for($i=0;$i<$datalen;$i++){ if(!empty($s->poi[$i]->x)||!empty($s->poi[$i]->y)){
}
}
首先把你的这个xml当一个字符串,进行一次替换,把<?xml version="1.0" encoding="UTF-8" ?>
替换为空,只留下其它标签。然后就可以通过loadXML载入成一个dom对象了,然后你调用属性吧。记住用loadXML较简单。
⑸ php用ob系列生成html静态页面如何进行内容分页
具体不知道你是怎么个生成静态页面法,是用户访问一页生成一页,还是事先在后台手动生成所有页,不过静态页面分无非两种思路,一个就是用JS来实现虚分页,这种方法就是将需分页显示的所有页内容都生成在一个静态页面内,然后用JS来控制特定DIV或LI等标签来现实分页,另一种就是PHP实现的硬分页,就是在生成页面时将所有内容通过PHP解析处理后都取出放在一个数组A内,如A[0]的内容就是第一页,A[1]就是第二页的内容,如此形式,然后再循环生成这些页,记得自己还要造构一个分页条,类似 [1] [2] [3] ... 分别关联到具体页面,如test0.html,test1.html,test2.html...如此形式就行了.不知道各位还有没其他更好的办法?
⑹ 什么是CDATA段
CDATA DTD中的属性类型 全名:character data 在标记CDATA下,所有的标记、实体引用都被忽略,而被XML处理程序一视同仁地当做字符数据看待,CDATA的形式如下: <![CDATA[文本内容]]> CDATA的文本内容中不能出现字符串“]]>”,另外,CDATA不能嵌套。 DTD实例: <!ATTLIST payment type CDATA "check"> 指定类型为CDATA以后就可以在XML中被用于实例, 例如下面payment 元素的type属性被指定为CDATA类型后在XML中就可以赋于"check"的字符数据。 XML 实例: 在CDATA标记中的信息被解析器原封不动地传给应用程序,并且不解析该段信息中的任何控制标记。 CDATA区域是由“<![CDATA["为开始标记,以“]]>”为结束标记,注意CDATA为大写。 <remark><![CDATA[ 音标为[kən'sistənt] ]]></remark> PHP实例: 比如:PHP中的<div class="left floatl column"></div>,DIV中就表示: Attribute : class Data Type : CDATA
⑺ 使用php循环出xml中多个相同重复的标签
重复的 xml 元素节点可以用 foreach 循环取出重复元素。
示例:
// $xmlData = file_get_contents('items.xml');
$xmlElement=simplexml_load_string($xmlData, 'SimpleXMLElement', 'LIBXML_NOCDATA');
$elements = $xmlElement->CustAcctId;
foreach ($elements as $element) {
var_mp($element);
}
提示:使用simplexml_load_string($xmlString, 'SimpleXMLElement', LIBXML_NOCDATA) 解析 xml 字符串,如果是 xml 文件,可以 file_get_contents 读取文件。