简单读取XML的方法
输出结果:
DOM读取
$main=$doc->getElementsByTagName('main'); 返回的是一个集合 需要foreach遍历
$main=$doc->getElementsByTagName('main')->item(0) 返回的是一个具体的节点 如果有多个<main></main>返回第一个
$name=$title->nodeName; //节点名 title、list等
$value=$title->nodeValue; //节点值
http://www.ibm.com/developerworks/cn/opensource/os-xmldomphp/
- <?xml version="1.0" encoding="gb2312"?>
- <xml>
- <site>
- <part id="1">
- <title id="a">czbin xml版块</title>
- <describe>xml的相关文章</describe>
- </part>
- <part id="2">
- <title id="b">czbin php版块</title>
- <describe>php的相关文章</describe>
- </part>
- <part id="3">
- <title id="c">czbin ajax版块</title>
- <describe>ajax的相关文章</describe>
- </part>
- </site>
- </xml>
- <?php
- $xml = simplexml_load_file('sxml.xml');
- $part = $xml->site->part;
- foreach ( $part as $content )
- {
- echo $content['id']."<br />";
- echo $content->title."<br />";
- echo $content->title['id']."<br />";
- echo $content->describe."<br />";
- }
- ?>
输出结果:
- 1
- czbin xml版块
- a
- xml的相关文章
- 2
- czbin php版块
- b
- php的相关文章
- 3
- czbin ajax版块
- c
- ajax的相关文章
DOM读取
- <?xml version="1.0" encoding="gb2312"?>
- <xml>
- <main>
- <list>1</list>
- <list>2</list>
- <list>3</list>
- </main>
- <main>
- <list>4</list>
- <list>5</list>
- <list>6</list>
- </main>
- <m>
- <list>7</list>
- <list>8</list>
- <list>9</list>
- </m>
- </xml>
- <?php
- $xml = new DOMDocument();
- $xml->load('cy.xml');
- $main = $xml->getElementsByTagName('main');
- foreach( $main as $main)
- {
- $list = $main->getElementsByTagName( "list" );
- foreach ( $list as $list )
- {
- $value = $list->firstChild->nodeValue;
- echo $value."<br />";
- }
- }
- $m = $xml->getElementsByTagName('m');
- foreach( $m as $m)
- {
- $list = $m->getElementsByTagName( "list" );
- foreach ( $list as $list )
- {
- $value = $list->firstChild->nodeValue;
- echo $value."<br />";
- }
- }
- ?>
- <?xml version="1.0" encoding="gb2312"?>
- <LevelOne>
- <LevelTwo>
- <LevelThree id="1">This is Text One</LevelThree>
- <LevelThree id="2">This is Text Two</LevelThree>
- <LevelThree id="3">This is Text Three</LevelThree>
- </LevelTwo>
- <LevelTwo>
- <LevelThree id="4">This is Text Four</LevelThree>
- <LevelThree id="5">This is Text Five</LevelThree>
- <LevelThree id="6">This is Text Six</LevelThree>
- </LevelTwo>
- </LevelOne>
- <?php
- $xml = new DOMDocument(); //建立一个DOMDocument
- $xml->load('cy.xml'); //Php指定需要读取xml文件的位置
- $LevelOne = $xml->getElementsByTagName('LevelOne');//按照名称取得节点,返回所有节点的集合,不过这里这样读LevelOne是没有意义的....
- $LevelOne = $xml->getElementsByTagName('LevelOne')->item(0);//返回第一个LevelOne节点中的内容
- $LevelTwo = $LevelOne->getElementsByTagName('LevelTwo'); //按照名称取得节点,返回所有LevelTwo
- foreach ( $LevelTwo as $Content )//循环读出所有LevelTwo,并在循环里,把LevelTwo用Content表示
- {
- $LevelThree = $Content->getElementsByTagName('LevelThree');//返回所有LevelThree
- foreach ( $LevelThree as $Concert )
- {
- $name = $Concert->nodeName;//节点名称
- $value = $Concert->nodeValue;//节点值
- $id = $Concert->getAttribute('id');//"id"属性值
- echo $name."<br />";
- echo $value."<br />";
- echo $id."<br />";
- }
- }
- ?>
$main=$doc->getElementsByTagName('main'); 返回的是一个集合 需要foreach遍历
$main=$doc->getElementsByTagName('main')->item(0) 返回的是一个具体的节点 如果有多个<main></main>返回第一个
$name=$title->nodeName; //节点名 title、list等
$value=$title->nodeValue; //节点值
http://www.ibm.com/developerworks/cn/opensource/os-xmldomphp/
- <books>
- <book>
- <author>Jack Herrington</author>
- <title>PHP Hacks</title>
- <publisher>O'Reilly</publisher>
- </book>
- <book>
- <author>Jack Herrington</author>
- <title>Podcasting Hacks</title>
- <publisher>O'Reilly</publisher>
- </book>
- </books>
- <?php
- $doc = new DOMDocument();
- $doc->load( 'books.xml' );
- $books = $doc->getElementsByTagName( "book" );
- foreach( $books as $book )
- {
- $authors = $book->getElementsByTagName( "author" );
- $author = $authors->item(0)->nodeValue;
- $publishers = $book->getElementsByTagName( "publisher" );
- $publisher = $publishers->item(0)->nodeValue;
- $titles = $book->getElementsByTagName( "title" );
- $title = $titles->item(0)->nodeValue;
- echo "$title - $author - $publisher\n";
- }
- ?>
对数据进行解析是应用开发必不可少的一个环节。下面是使用XML Parser对XML文档进行解析的过程:
- <?php
- // 处理开始元素函数
- function startElementHandler($parser, $element, $attributes) {
- echo "元素开始:".$element."<br>";
- if($attributes) {
- echo "属性:";
- foreach ( $attributes as $key => $value ) {
- echo $key."=".$value." ";
- }
- echo "<br>";
- }
- }
- // 处理结束元素函数
- function endElementHandler($parser, $element) {
- echo "元素结束:".$element."<br><br>";
- }
- // 处理字符串数据函数
- function characterDataHandler($parser, $data) {
- if(trim($data)) {
- echo "字符串数据:".htmlspecialchars($data)."<br>";
- }
- }
- // 处理解析错误函数
- function parserError($parser) {
- $code = xml_get_error_code($parser);
- $error = xml_error_string($code);
- $errorColumn = xml_get_current_column_number($parser);
- $errorLine = xml_get_current_line_number($parser);
- return "错误代码:".$code." 错误:".$error."在第".$errorLine."行第".$errorColumn."列";
- }
- // 创建解析器
- $parser = xml_parser_create();
- // 注册元素处理函数
- xml_set_element_handler($parser, "startElementHandler", "endElementHandler");
- xml_set_character_data_handler($parser, "characterDataHandler");
- // 获取文件内容
- $xml = file_get_contents("parser.xml");
- // 开始解析parser.xml文档,解析错误就调用错误处理函数
- xml_parse($parser, $xml) or die(parserError());
- // 删除解析器并释放内存
- xml_parser_free($parser);
- ?>
我们给定的XML示例是:
- <?xml version="1.0" encoding="UTF-8"?>
- <phpedu>
- <title>PHP100</title>
- <item type="text" name="item">
- <contents type="text">PHP</contents>
- <contents>SQL</contents>
- <contents>Linux</contents>
- <contents>Apache</contents>
- </item>
- <address type="URL">www.php100.com</address>
- </phpedu>
多说一句:希望对您有所帮助!不同语言对XML的解析区别于形式,统一于本质!:)
相关推荐
xml转json,或xml转array xml转json,或xml转array
php将对象转成数组,php将xml转成数组 一个自定义函数搞定纯原创。
如果你已经有了一个图像转换的想法,希望在应用中使用,可以花上几分钟的时间,了解一下将XML转化为PDF和图片的PHP库这个类库。它是一个提供了各种Picasso转换的方法集合。对于你的实现来说,它非常值得学习。这个...
主是描述了在php下array与Xml之间的转换总结,文档内有部分代码讲解!
php中将xml转换成数组的方法,大部分情况下通用。
把XML数据转换成php数组形式。
php把数组转换成XML格式
一个PHP实现XML与数据格式进行转换类
xml 数据格式转换成php数组,php数组转成xml格式数据
PHP解析XML文档,PHP解析XML文档,PHP解析XML文档
php解析xml实例php解析xml实例php解析xml实例php解析xml实例php解析xml实例php解析xml实例php解析xml实例php解析xml实例php解析xml实例php解析xml实例php解析xml实例php解析xml实例
PHP 将 XML文件或内容直接转成数组,在用PHP读取XML文档时很是方便!
用PHP将二维数组拼接成xml内容形式,形成的标签可以根据自己的需要进行修改
一个将数组转换为xml简单的PHP类
php生成xml文件
来越多的应用程序需要将 XML 转换成 JSON。已经出现了一些基于 Web 的服务来执行这类转换。IBM T.J. Watson Research Center 开发...XML 到 JSON 的转换需要用到两种 PHP 核心特性: SimpleXMLElement Services_JSON
* @example $my_web2xml = new C_Web2XML('/bbs','bbs.xml');$my_web2xml->Set_FileExtendFiler('exe|rar|zip');$my_web2xml->Create_Web2XML(); * @desc Covert the XML file to you website * @example $my_web...
本文实例讲述了PHP实现的数组和XML文件相互转换功能。分享给大家供大家参考,具体如下: 最近搞微信支付,微信服务器返回的都是XML文件,所以需要转换成数组,才会便于操作,好了话不多说,直接上代码: 1. XML转数...
这是日志文件的读取 并且用XML显示在浏览器上,自己写的.. 可以参考...
xmlparse.php为封装好的xml与php数组相互转换的函数: XML->PHP: parse_xml_config(); PHP->XML: dump_xml_config(); #将转换好的XML放入文件: file_put_contents_safe().