⑴ 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 讀取文件。