首頁  >  文章  >  後端開發  >  PHP操作xml的方法

PHP操作xml的方法

小云云
小云云原創
2018-02-06 11:01:301431瀏覽

這篇文章主要介紹了PHP基於XMLWriter操作xml的方法,結合實例形式分析了php使用XMLWriter生成及解析xml資料的操作技巧,需要的朋友可以參考下

本文實例講述了PHP基於XMLWriter操作xml的方法。分享給大家供大家參考,具體如下:

接著昨天的這次再來學習一種讀寫xml的方式,這種方式主要圍繞著XMLWriter和XMLReader進行。前者用於產生xml,後者則是用來讀取並解析xml.廢話不多說一起來看看吧

#1. 產生xml檔或字串


openUri("php://output");
 //设置输出,如果不需要保存成文件则使用上面被注释掉那句
 $xml->openUri("stu2.xml");
 //设置缩进字符串,这里设置为空串(这句和下面的setIntent也可以不要)
 $xml->setIndentString('');
 $xml->setIndent(true);
 //xml文档开始
 $xml->startDocument('1.0', 'utf-8');
 //创建根节点
 $xml->startElement("StudentInfo");
 $xml->startElement("Item");
 //添加属性
 $xml->writeAttribute("type","1");
 $xml->startElement("id");
 $xml->text("01");
 $xml->endElement();
 $xml->startElement("name");
 $xml->text("刘惜君");
 $xml->endElement();
 $xml->endElement();
 $xml->endElement();
 $xml->endDocument();
 //header("Content-type: text/xml");
 //取得缓冲区里的xml字符串
 //echo $xml->outputMemory();
?>

這種方式的特點是每個標籤結束後需要一個endElement,xml拼接好後需要把文件結束掉。有一種「層層包裹」的感覺

2.解析 xml


open("student.xml");
//开始读取xml
 while($xml->read()){
   //根据节点类型和元素名称取得文本节点或属性
  if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == 'item') {
     print $xml->getAttribute("id") . "
"; } if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == 'name') { //移动指针到下一个节点 $xml->read(); //取得文本节点的值 print $xml->value."
"; } if ($xml->nodeType == XMLREADER::ELEMENT && $xml->localName == 'age') { $xml->read(); print $xml->value."
"; } } ?>

這種解析xml的方式比較高效,如果有的地方看不懂建議查閱下PHP開發手冊

被解析的文件內容如下



冯绍峰30潘玮柏29

下面是解析出來的結果

相關推薦:

#php解析xml並產生sql語句的實作方法

PHP解析xml格式資料工具類別實例分享

詳解PHP對xml檔增刪改查

以上是PHP操作xml的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn