創(chuàng)建一個以.xml結(jié)尾的文檔
創(chuàng)新互聯(lián)建站堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的九江網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
內(nèi)容如下:
?xml version="1.0" encoding="utf-8"?
class
student info="美女"
name小喬/name
sex女/sex
age20/age
/student
student
name周瑜/name
sex男/sex
age25/age
/student
student
namehsy/name
sex男/sex
age21/age
/student
/class
創(chuàng)建以.php結(jié)尾的文件:代碼如下:
?php
header('content-type:text/html;charset=utf-8');
//1、創(chuàng)建一個DOMDocument對象。該對象就表示 xml文件
$xmldoc = new DOMDocument();
//2、加載xml文件(指定要解析哪個xml文件,此時dom樹節(jié)點(diǎn)就會加載到內(nèi)存中)
$xmldoc-load("class.xml");
//3、目標(biāo):獲取第一個學(xué)生的名字
$stu = $xmldoc-getElementsByTagName("name");//直接找到節(jié)點(diǎn)name
$stu1 = $stu-item(0);// item(1)時,可以取到周瑜
$sex=$xmldoc-getElementsByTagName("sex");
$sex1= $sex-item(0);
echo $sex1-nodeValue;
echo $stu1-nodeValue;
?
結(jié)果顯示為:女小喬
用戶輸入輸出函數(shù)(fopen() file()require(),只能用于調(diào)用這些函數(shù)有相同腳本的擁有者)?2:創(chuàng)建新文件(限制用戶只在該用戶擁有目錄下創(chuàng)建文件)?3:用戶調(diào)用popen() systen()exec()等腳本,只有腳本處在sa fe_mode_exec_dir配置指令指定的 錄中才可能?4:加強(qiáng)HTTP認(rèn)證,認(rèn)證腳本擁有者的UID的劃入認(rèn)證領(lǐng)域范圍內(nèi),此外啟用安全模式下,不會設(shè)置PHP大概就是這樣子了,我都是在后盾人實(shí)訓(xùn)班學(xué)到的,最近學(xué)費(fèi)九折包住宿,樓主感興趣可以了解一下
朋友,你不能在dom操作里邊用數(shù)組的方法直接調(diào)用屬性和vlaue
推薦你看下dom手冊和php手冊,當(dāng)然如有需要我可以給你發(fā)一份到郵箱
你可以用dom的操作來讀取
?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對象常用方法:
a)createElement(elementName) ---- 該方法以元素名為參數(shù)創(chuàng)建一個用此參數(shù)命名的元素節(jié)點(diǎn)。(不能創(chuàng)建名稱空間受限制的元素。如果要創(chuàng)建名稱空間受限制的元素,必須使用createNode()方法)
例: doc.createElement("PRODUCT"),有些用到:doc- creatElement('item')
b)createAttribute(attributeName) ---- 該方法以屬性名為參數(shù)創(chuàng)建一個用此參數(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)建一個包含此字符串的注釋節(jié)點(diǎn)。
例: doc.createComment("This is an XML document")
item!--upload_name--download_name下載通道名稱/download_name/item
d)createTextNode(text) ---- 該方法以字符串為參數(shù)創(chuàng)建一個包含指定字符串的正文節(jié)點(diǎn)。
例: doc.createTextNode("Sony Workman")
e)createNode(type,name,namespace-URI) ---- 該方法創(chuàng)建元素節(jié)點(diǎn)。三個參數(shù),"類型"參數(shù)是variant型,既可以是字符串也可以是整型。第二個參數(shù)是字符串,它代表將要創(chuàng)建的節(jié)點(diǎn)的名字。第三個參數(shù)是代表namespace-URI的字符串。如果namespace-URI為空字符串,則新創(chuàng)建的節(jié)點(diǎn)就沒有名稱空間URI
例: doc.createNode("element","PRODUCT","")
doc.createNode("element","prod: PRODUCT","blog.csdn.net/fcrpg2005")
doc.createNode(1,"PRODUCT","")
f)getElementsByTagName(elementName) ---- 該方法以字符串為參數(shù)。這個字符串是要搜索的元素。返回IXMLDOMNodeList對象,包含指定元素名稱的節(jié)點(diǎn)的集合??梢杂眠@些節(jié)點(diǎn)信來瀏覽操縱存儲在指定元素中的值。
例: doc.getEelmentsByTagName("PRICE")
g)load(XMLdocument) ---- 該方法以字符串為參數(shù)。這個字符串是XML文檔的地址(HTTP地址或本地地址)
例: doc.load("")
doc.load("D:\product.xml")
h)loadXML(string) ---- 該方法把成形的XML代碼或整個XML文檔載入DOMDocument對象中。
例: doc.loadXML("?xml version=1.0PRODUCTSPRODUCTnameBarbie Doll/name/PRODUCT/PRODUCTS")
i)transformNode(stylesheet object) ---- 該方法以風(fēng)格表對象為參數(shù)。通過把相應(yīng)的風(fēng)格表加到XML文檔上來處理節(jié)點(diǎn),然后返回轉(zhuǎn)換結(jié)果。
例: doc.transformNode("product.xsl")
j)appendChild(child node) ---- 該方法以對象為參數(shù)。把這個對象作為最后的子節(jié)點(diǎn)加在XML文檔上。createNode() 或者 createElement()方法可以創(chuàng)建節(jié)點(diǎn)或元素。但是它們不會把新建的節(jié)點(diǎn)加到文檔樹形結(jié)構(gòu)上。而是需要用appendChild()方法,insertBefore()方法,或者replaceChild()方法把新建的節(jié)點(diǎn)加上去。
例: doc.appendChild(root) ---- PS: root是一個用createNode()或createElement()方法創(chuàng)建的節(jié)點(diǎn)
k)save(destination) ---- 該方法以對象為參數(shù)。這個對象可以是一個DOMDocument對象也可以是一個文件名。save()方法把DOMDocument對象保存在指定的目的地。
例: doc.save("")
* DOMDocument對象常用屬性:
a)async ---- 該屬性用來指定是否允許異步加載。屬性async取布爾值。
例: doc.async = false --同步
b)childNodes ---- 該屬性返回屬于一個父節(jié)點(diǎn)的子節(jié)點(diǎn)集合(即返回當(dāng)前元素所有子元素的數(shù)組對象)。該屬性的值是對象IXMLDOMNodeList的類型。
例: var firstelem = doc.childNodes.item(0)
c)documentElement ---- 該屬性包含用對象DOMDocument表示的XML文檔的根元素。
例: var root = doc.documentElement
d)firstChild ---- 該屬性返回父元素的第一個子節(jié)點(diǎn)。該元素是只讀的。
例: var firstelem = doc.firstChild
e)lastChild ---- 該屬性返回父元素的最后一個子節(jié)點(diǎn)。
例: var lastelem = doc.lastChild
f)parseError ---- 該屬性返回一個包含大部分最近產(chǎn)生的錯誤信息的對象。
例: var error = doc.parseError
g)readyState ---- 該屬性返回XML文檔的狀態(tài)。它顯示這個文檔是否已完全載入。4個狀態(tài):0-未初始化、1-正在加載、2-已加載、3-交互中、4-已完成
例: var stateInfo = doc.readState
if(stateInfo == 4) { // Document loading
// Coding
}
h)xml ---- 該屬性返回一個節(jié)點(diǎn)以有其子節(jié)點(diǎn)的XML表示。
例: document.write(doc.xml)
i)validateOnParse ---- 該屬性指定解析器是否在解析XML文檔時驗證其合法性。
例: doc.validateOnParse = true
//假設(shè)xml字符串
$postStr = 'xmlToUserName![CDATA[toUser]]/ToUserNameFromUserName![CDATA[FromUser]]/FromUserNameCreateTime123456789/CreateTimeMsgType![CDATA[text]]/MsgTypeContent![CDATA[p1]]/Content/xml';
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
var_dump($postObj);
/**
object(SimpleXMLElement)[16] public 'ToUserName' = string 'toUser' (length=6) public 'FromUserName' = string 'FromUser' (length=8) public 'CreateTime' = string '123456789' (length=9) public 'MsgType' = string 'text' (length=4) public 'Content' = string 'p1' (length=2)
*/
//把xml字符串解析為對象
網(wǎng)站名稱:php+解析xml+數(shù)據(jù) php解析xml數(shù)據(jù)
本文網(wǎng)址:http://muchs.cn/article22/hjcdcc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、靜態(tài)網(wǎng)站、服務(wù)器托管、微信小程序、微信公眾號、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)