XML的解析与创建范例

互联网 19-4-23
XML用来传输和存储数据,如何解析获取到的XML文本呢?本篇文章讲述的是对xml文本的解析与创建,具有一定参考价值,感兴趣的朋友可以来了解一下。

一.解析XML

创建demo.xml文件:

<?xml version="1.0" encoding="UTF-8"?> <bookstore>     <book book_id="1">       <title>php</title>        <author>php入门到放弃</author>      </book>     <book book_id="2">       <title>java</title>        <author>java入门到放弃</author>      </book>     <book book_id="3">       <title>C</title>        <author>C入门到放弃</author>      </book></bookstore>

使用PHP解析demo.xml中的内容,以获取到php这个文本节点为例:

<?php     /*思路:1.先载入xml文档      2.获取节点列表对象      3.获取子节点对象      4.获取子节点列表对象      5.获取文本对象 如果层级比较深就是循环2-4步,先拿列表对象,再拿子节点对象...*/     $dom = new DOMDocument('1.0','UTF-8');     //print_r($dom); //DOMDocument Object     $dom->load('demo.xml'); //载入要解析的xml文档     $titleList = $dom->getElementsByTagName('title'); ////DOMNodeList Object ( [length] => 3 ) 获取节点列表对象     $title = $titleList->item(0); //DOMElement Object 获取子节点对象     $title = $title->childNodes; //DOMNodeList Object ( [length] => 1 )获取子节点列表对象     $title = $title->item(0); //DOMText Object 获取到文本对象     $text = $title->wholeText; //获取到文本内容     echo $text; //php     echo '<br>';     //也可以直接写成连贯操作:       $text = $dom->getElementsByTagName('title')->item(0)->childNodes->item(0)->wholeText;     echo $text; //php     echo '<br>';     //第二种方法:     $text = $dom->getElementsByTagName('title')->item(0)->nodeValue; //获取到文本内容     echo $text; //php

除了解析之外,还可以对xml节点进行删除和替换操作:

    $dom = new DOMDocument('1.0','UTF-8');     $dom->load('demo.xml'); //载入要解析的xml文档     /**      *xml删除节点      * */     $php = $dom->getElementsByTagName('book')->item(0); //获取文本节点     $php->parentNode->removeChild($php); //获取文本节点的父节点,然后站在父节点的立场删除子文本节点     /**      * xml替换节点      * */     $java = $dom->getElementsByTagName('title')->item(0); //获取要替换的文本节点     $newnode = $dom->createTextNode('python'); //创建新的文本节点     $java->replaceChild($newnode,$java->firstChild); //用新节点替换旧文本节点内容     header("content-type:text/xml");     echo $dom->saveXML(); //直接输出xml文本     

二.创建XML

使用PHP创建一个如下的XML文件:

<?xml version="1.0" encoding="UTF-8"?> <bookstore>  <book book_id="1">      <title>php</title>      <author><![CDATA[PHP是世界上最好的编程语言.emmm...]]></author>  </book></bookstore>

PHP代码:

<?php     $dom = new DOMDocument('1.0','UTF-8');     $text =  $dom->createTextNode('php'); //创建文本节点     $title = $dom->createElement('title'); //创建普通节点     $title->appendChild($text); //将文本节点作为子节点添加到普通节点内     $cdata = $dom->createCDATASection('PHP是世界上最好的编程语言.emmm...'); //创建CDATA节点     $author = $dom->createElement('author'); //创建普通节点     $author->appendChild($cdata); //将CDATA节点作为子节点添加到普通节点内     $book = $dom->createElement('book'); //创建普通节点     //将上面创建的两个普通节点作为子节点添加到普通节点内     $book->appendChild($title);     $book->appendChild($author);     $book_id = $dom->createAttribute('book_id'); //创建属性名     $book_id->value = '1'; //创建属性值     $book->appendChild($book_id); //将属性加到普通节点内     $bookstore = $dom->createElement('bookstore'); //创建普通节点     $bookstore->appendChild($book); //将普通节点作为子节点添加到普通节点内     $dom->appendChild($bookstore); //将普通节点添加到文档内     // header("content-type:text/xml");     // echo $dom->saveXML(); //直接输出xml文本     echo $dom->save('demo.xml'); //生成xml文件

在浏览器输出如下图:

相关教程:XML视频教程

以上就是XML的解析与创建范例的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: xml
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:Java中解析XML的方式有哪些

相关资讯