新聞中心
php 動(dòng)態(tài)輸出xml
被你require進(jìn)去的文件有HTML文件代碼(也就是你的#1.php)。去掉那些代碼就沒(méi)有問(wèn)題了。
在小店等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作定制網(wǎng)站制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),成都營(yíng)銷網(wǎng)站建設(shè),外貿(mào)網(wǎng)站建設(shè),小店網(wǎng)站建設(shè)費(fèi)用合理。
你運(yùn)行后查看你的xml文件,肯定是不規(guī)范的xml文件格式。
你把 #1.php的內(nèi)容貼出來(lái)吧 ,如果是這樣的話,你把你的#1.php和輸出xml的頁(yè)面另存為為utf-8編碼(用記事本打開(kāi)另存為就可以了,注意輸出的字符編碼為utf-8),清除ie緩存,應(yīng)該是沒(méi)有問(wèn)題了。你這個(gè)應(yīng)該是編碼問(wèn)題。xml文件一定要用utf-8編碼來(lái)保存。
關(guān)于PHP解析XML文件的..
朋友,你不能在dom操作里邊用數(shù)組的方法直接調(diào)用屬性和vlaue
推薦你看下dom手冊(cè)和php手冊(cè),當(dāng)然如有需要我可以給你發(fā)一份到郵箱
你可以用dom的操作來(lái)讀取
?php
$doc=new DOMDocument();
$doc-load("liuyan.xml");
$liuyan=$doc-getElementsByTagName("line");
foreach($liuyan as $ly)
{
$id=$ly-getAttribute("id");
$nicker=$ly-getElementsByTagName("nicker");
$nicker=$nicker-item(0)-nodeValue;
$nicker=iconv("utf-8","gb2312",$nicker);
$email=$ly-getElementsByTagName("email");
$email=$email-item(0)-nodeValue;
$url=$ly-getElementsByTagName("url");
$url=$url-item(0)-nodeValue;
$content=$ly-getElementsByTagName("content");
$content=$content-item(0)-nodeValue;
$content=iconv("utf-8","gb2312",$content);
$creatime=$ly-getElementsByTagName("create");
$creatime=$creatime-item(0)-nodeValue;
//$creatime=date("Y-m-j",$creatime);
// echo "nicker:".$nicker."email:".$email."url:".$url."content:".$content;
?
dom文檔
DOMDocument對(duì)象常用方法:
a)createElement(elementName) ---- 該方法以元素名為參數(shù)創(chuàng)建一個(gè)用此參數(shù)命名的元素節(jié)點(diǎn)。(不能創(chuàng)建名稱空間受限制的元素。如果要?jiǎng)?chuàng)建名稱空間受限制的元素,必須使用createNode()方法)
例: doc.createElement("PRODUCT"),有些用到:doc- creatElement('item')
b)createAttribute(attributeName) ---- 該方法以屬性名為參數(shù)創(chuàng)建一個(gè)用此參數(shù)命名的屬性節(jié)點(diǎn)。
例: doc.createAttribute("PRODID")
xml中表現(xiàn)形式:item upload_name="上3"download_name下載通道名稱/download_name/item
c)createComment(text) ---- 該方法以字符串為參數(shù)創(chuàng)建一個(gè)包含此字符串的注釋節(jié)點(diǎn)。
例: doc.createComment("This is an XML document")
item!--upload_name--download_name下載通道名稱/download_name/item
d)createTextNode(text) ---- 該方法以字符串為參數(shù)創(chuàng)建一個(gè)包含指定字符串的正文節(jié)點(diǎn)。
例: doc.createTextNode("Sony Workman")
e)createNode(type,name,namespace-URI) ---- 該方法創(chuàng)建元素節(jié)點(diǎn)。三個(gè)參數(shù),"類型"參數(shù)是variant型,既可以是字符串也可以是整型。第二個(gè)參數(shù)是字符串,它代表將要?jiǎng)?chuàng)建的節(jié)點(diǎn)的名字。第三個(gè)參數(shù)是代表namespace-URI的字符串。如果namespace-URI為空字符串,則新創(chuàng)建的節(jié)點(diǎn)就沒(méi)有名稱空間URI
例: doc.createNode("element","PRODUCT","")
doc.createNode("element","prod: PRODUCT","blog.csdn.net/fcrpg2005")
doc.createNode(1,"PRODUCT","")
f)getElementsByTagName(elementName) ---- 該方法以字符串為參數(shù)。這個(gè)字符串是要搜索的元素。返回IXMLDOMNodeList對(duì)象,包含指定元素名稱的節(jié)點(diǎn)的集合。可以用這些節(jié)點(diǎn)信來(lái)瀏覽操縱存儲(chǔ)在指定元素中的值。
例: doc.getEelmentsByTagName("PRICE")
g)load(XMLdocument) ---- 該方法以字符串為參數(shù)。這個(gè)字符串是XML文檔的地址(HTTP地址或本地地址)
例: doc.load("")
doc.load("D:\product.xml")
h)loadXML(string) ---- 該方法把成形的XML代碼或整個(gè)XML文檔載入DOMDocument對(duì)象中。
例: doc.loadXML("?xml version=1.0PRODUCTSPRODUCTnameBarbie Doll/name/PRODUCT/PRODUCTS")
i)transformNode(stylesheet object) ---- 該方法以風(fēng)格表對(duì)象為參數(shù)。通過(guò)把相應(yīng)的風(fēng)格表加到XML文檔上來(lái)處理節(jié)點(diǎn),然后返回轉(zhuǎn)換結(jié)果。
例: doc.transformNode("product.xsl")
j)appendChild(child node) ---- 該方法以對(duì)象為參數(shù)。把這個(gè)對(duì)象作為最后的子節(jié)點(diǎn)加在XML文檔上。createNode() 或者 createElement()方法可以創(chuàng)建節(jié)點(diǎn)或元素。但是它們不會(huì)把新建的節(jié)點(diǎn)加到文檔樹(shù)形結(jié)構(gòu)上。而是需要用appendChild()方法,insertBefore()方法,或者replaceChild()方法把新建的節(jié)點(diǎn)加上去。
例: doc.appendChild(root) ---- PS: root是一個(gè)用createNode()或createElement()方法創(chuàng)建的節(jié)點(diǎn)
k)save(destination) ---- 該方法以對(duì)象為參數(shù)。這個(gè)對(duì)象可以是一個(gè)DOMDocument對(duì)象也可以是一個(gè)文件名。save()方法把DOMDocument對(duì)象保存在指定的目的地。
例: doc.save("")
* DOMDocument對(duì)象常用屬性:
a)async ---- 該屬性用來(lái)指定是否允許異步加載。屬性async取布爾值。
例: doc.async = false --同步
b)childNodes ---- 該屬性返回屬于一個(gè)父節(jié)點(diǎn)的子節(jié)點(diǎn)集合(即返回當(dāng)前元素所有子元素的數(shù)組對(duì)象)。該屬性的值是對(duì)象IXMLDOMNodeList的類型。
例: var firstelem = doc.childNodes.item(0)
c)documentElement ---- 該屬性包含用對(duì)象DOMDocument表示的XML文檔的根元素。
例: var root = doc.documentElement
d)firstChild ---- 該屬性返回父元素的第一個(gè)子節(jié)點(diǎn)。該元素是只讀的。
例: var firstelem = doc.firstChild
e)lastChild ---- 該屬性返回父元素的最后一個(gè)子節(jié)點(diǎn)。
例: var lastelem = doc.lastChild
f)parseError ---- 該屬性返回一個(gè)包含大部分最近產(chǎn)生的錯(cuò)誤信息的對(duì)象。
例: var error = doc.parseError
g)readyState ---- 該屬性返回XML文檔的狀態(tài)。它顯示這個(gè)文檔是否已完全載入。4個(gè)狀態(tài):0-未初始化、1-正在加載、2-已加載、3-交互中、4-已完成
例: var stateInfo = doc.readState
if(stateInfo == 4) { // Document loading
// Coding
}
h)xml ---- 該屬性返回一個(gè)節(jié)點(diǎn)以有其子節(jié)點(diǎn)的XML表示。
例: document.write(doc.xml)
i)validateOnParse ---- 該屬性指定解析器是否在解析XML文檔時(shí)驗(yàn)證其合法性。
例: doc.validateOnParse = true
PHP讀取XML數(shù)據(jù)
編碼問(wèn)題,function
characterData改成如下
function
characterData($parser_instance,
$xml_data)
{
global
$name,$position;
$xml_data=iconv("utf-8","gb2312",$xml_data);//轉(zhuǎn)換成gb2312
if($position)
echo
$xml_data."br";
if($name)
echo
$xml_data."br";
}
顯示的那個(gè)頁(yè)面也要有charset=gb2312
名稱欄目:php顯示xml數(shù)據(jù)類型 xml 數(shù)據(jù)類型
文章出自:http://www.ef60e0e.cn/article/hjocij.html