简单读取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。在PHP中,我们可以利用`json_encode()`函数和DOMDocument类来实现这一过程。`json_encode()`函数将PHP值转化为JSON字符串,而DOMDocument则用于解析和操作XML文档。以下是一个简单的示例:...
php将对象转成数组,php将xml转成数组 一个自定义函数搞定纯原创。
在PHP开发中,XML(可扩展标记语言)是一种常见的数据交换格式,特别是在处理与服务器通信、数据存储或配置文件时。然而,有时我们可能需要将XML数据转化为更易于操作的PHP数组,以便进行进一步的处理。本文将详细...
在 PHP 中,数组和 XML 之间的转换是一种常见的需求,特别是在数据交换、存储或者解析 XML 文件时。本篇文章将深入探讨如何在 PHP 中实现数组到 XML 的转换,并提供两种不同的实现方式。 首先,我们来看第一种方法...
如果你已经有了一个图像转换的想法,希望在应用中使用,可以花上几分钟的时间,了解一下将XML转化为PDF和图片的PHP库这个类库。它是一个提供了各种Picasso转换的方法集合。对于你的实现来说,它非常值得学习。这个...
- **数组转XML**:SimpleXML提供了一个方便的方法`asXML()`,将SimpleXMLElement对象转换为XML字符串。DOM则可以通过`DOMDocument::saveXML()`或`DOMDocument::save()`保存到字符串或文件。 4. **类设计与实现** ...
把XML数据转换成php数组形式。
在PHP开发中,将文本数据转换为XML格式是一项常见的任务,尤其当处理日志文件时。日志文件通常以文本格式存储,包含了丰富的系统、应用或用户活动信息。本示例将详细介绍如何读取TXT日志文件并将其内容转换为XML,...
php把数组转换成XML格式
### PHP将XML文件或内容直接转换为数组 在Web开发中,XML(可扩展标记语言)是一种常用的格式,用于存储和传输数据。然而,在处理这些数据时,通常更倾向于使用数组这种更为灵活的数据结构。因此,如何有效地将XML...
在PHP开发中,有时我们需要将数据结构,如数组,转换为XML格式以便于数据交换、存储或与XML API进行交互。这个"一个将数组转换为xml简单的PHP类"的主题提供了一个方便的解决方案,使得开发者无需深入理解XML底层的...
### PHP解析XML文档知识点 #### 一、XML简介与特性 - **定义**:XML(Extensible Markup Language),即可扩展标记语言,是一种用于描述数据的标记语言,它允许用户自定义标签,使得数据的组织更为灵活且具有高度...
xml 数据格式转换成php数组,php数组转成xml格式数据
在IT领域,XML(eXtensible Markup Language)是一种用于存储和传输数据的标准化格式,而PHP(Hypertext Preprocessor)是一种广泛使用的服务器端脚本语言,特别适合Web开发。当涉及到数据交换或者需要在不同的系统...
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提供了DOM、SimpleXML、XMLReader和XMLWriter等库来解析和生成XML文档。 **PHP与XML的结合** 通过PHP的XML处理函数,我们可以读取、解析XML文件,提取所需数据,然后进行处理或展示。例如,使用SimpleXML库可以...
《XML到JSON转换在PHP中的实现》 XML(Extensible Markup Language)和JSON(JavaScript Object Notation)是两种广泛使用的数据交换格式。XML以其结构化的特性,在数据存储和传输方面有着广泛的应用,而JSON因其...
在PHP中,XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,广泛应用于Web服务、配置文件和数据交换等场景。而PHP提供了处理XML的强大工具,如SimpleXML、DOMDocument和XMLReader等。本篇将...
当我们需要在网页上展示XML数据时,PHP可以作为桥梁,将XML数据解析并呈现到HTML表格中。下面我们将详细探讨这个过程。 首先,我们需要了解如何使用PHP读取XML文件。PHP提供了DOMDocument和SimpleXMLElement类来...