使用PHP DOM-XML创建和解析XML文件

dom|xml|创建

<?php
/**
* Topic: Create and parse XML files using PHP DOM-XML
* Source: http://www.php.net/domxml
* Reference: http://www.zugeschaut-und-mitgebaut.de/php/extension.domxml.html
* Author: urs@circle.ch, 16-1-2001
*
*/
// 使用PHP DOM-XML创建和解析XML文件
//创建XML文档对象;以后的处理过程将在此基础上进行
$doc = new_xmldoc("1.0" );

//创建根节点,并设置一个属性
$root = $doc->add_root("faq" );
$root->setattr("page", "32" );

//子节点
$one = $root->new_child("question", "");
//为子节点设置属性
$one->setattr("number", "1");
//question也创建子节点,并且给它赋值
$one->new_child("text", "1. Where to get libxml-2.0.0?");
$one->new_child("answer", "You can download the latest
release of libxml either as a source archive or
RPM package from http://www.xmlsoft.org.
The current version is libxml2-2.2.1." );

$two = $root->new_child("question", "" );
$two->setattr("number", "2");
$two->new_child("text", "2. How to configure PHP4?" );
// 创建一个不直接赋值的节点
$twoone = $two->new_child("answer", "");
// 然后给它单独赋值
$twoone->set_content("DIR is the libxml install directory
(if you just use --with-dom it defaults
to /usr), I needed to use --with-dom=/usr/local" );

$three = $root->new_child("question", "" );
$three->setattr("number", "7" );
$three->new_child("text", "7. How to use DOM XML function ?" );
$three->new_child("answer", "Read this document source for
a simple example." );

//输出到Browser
print("<pre>".htmlspecialchars($doc->dumpmem() )."</pre>" );

// write to file
//写回到文件
$fp = fopen("test_dom.xml", "w+" );
fwrite($fp, $doc->dumpmem(), strlen($doc->dumpmem() ));
fclose($fp);

// ------------------------------------------------------
//现在使用xpath从XML文档中得到内容

$doc = xmldoc(join("", file("test_dom.xml")) );
$ctx = xpath_new_context($doc );

//所有对象
$foo = xpath_eval($ctx, "//child::*");
print_r($foo);
print("<br/><br/>");
//text node 对象
$foo = xpath_eval($ctx, "//text");
print_r($foo);
print("<br/><br/>");
// 第一个text node对象
$foo = xpath_eval($ctx, "//text[1]");
print_r($foo);
print("<br/><br/>");
// 第二个text node对象
$foo = xpath_eval($ctx, "//text[2]");
print_r($foo);
print("<br/><br/>");
// 第三个answer对象
$foo = xpath_eval($ctx, "//answer[3]");
print_r($foo);
print("<br/><br/>");

//第三个text node的类型,名称和内容
$foo = xpath_eval($ctx, "//text[3]");
$tmp = $foo->nodeset;
print_r($tmp);
print("<br/>");
print($tmp[0]->type) . "; ";
print($tmp[0]->name) . "; ";
print($tmp[0]->content);

?>

需要说明,PHP DOM 只能在PHP PHP4.0.x + linux上运行

时间: 2024-12-30 23:09:03

使用PHP DOM-XML创建和解析XML文件的相关文章

Android创建与解析XML(一) 概述

Android 是最常用的智能手机平台,XML 是数据交换的标准媒介,Android 中可以使用标准的XML生成器.解析器.转换器 API,对 XML 进行解析和转换. XML,相关有DOM.SAX.JDOM.DOM4J.Xerces.JAXP等一堆概念,但是很多人总是会弄 混他们之间的关系,这对我们理解XML文件的创建和解析很不利.要挑选一个适合在Android平台上使用的XML解析方案,我们还 是得先把这些概念厘清. XML基本概念 DOM(Document Object Model,文档对

Android 创建与解析XML(一)—— 概述

Android 是最常用的智能手机平台,XML 是数据交换的标准媒介,Android 中可以使用标准的XML生成器.解析器.转换器 API,对 XML 进行解析和转换. XML,相关有DOM.SAX.JDOM.DOM4J.Xerces.JAXP等一堆概念,但是很多人总是会弄混他们之间的关系,这对我们理解XML文件的创建和解析很不利.要挑选一个适合在Android平台上使用的XML解析方案,我们还是得先把这些概念厘清. XML基本概念 DOM(Document Object Model,文档对象模

Android创建与解析XML(二) Dom方式

1. Dom概述 Dom方式创建XML,应用了标准xml构造器 javax.xml.parsers.DocumentBuilder 来创建 XML 文档,需要 导入以下内容 javax.xml.parsers javax.xml.parsers.DocumentBuilder javax.xml.parsers.DocumentBuilderFactory javax.xml.parsers.ParserConfigurationException; javax.xml.transform ja

Android 创建与解析XML(二)—— Dom方式

1. Dom概述 Dom方式创建XML,应用了标准xml构造器 javax.xml.parsers.DocumentBuilder 来创建 XML 文档,需要导入以下内容 javax.xml.parsers javax.xml.parsers.DocumentBuilder  javax.xml.parsers.DocumentBuilderFactory  javax.xml.parsers.ParserConfigurationException; javax.xml.transform j

Android创建与解析XML(二)——详解Dom方式_Android

1. Dom概述 Dom方式创建XML,应用了标准xml构造器 javax.xml.parsers.DocumentBuilder 来创建 XML 文档,需要导入以下内容 javax.xml.parsers javax.xml.parsers.DocumentBuilder javax.xml.parsers.DocumentBuilderFactory javax.xml.parsers.ParserConfigurationException; javax.xml.transform jav

Android创建与解析XML(六) 比较与使用

前面介绍了四种创建.解析XML的方式: 0. Android 创建与解析XML(一)-- 概述 1. Android 创建与 解析XML(二)-- Dom方式 2. Android 创建与解析XML(三)-- Sax方式 3. Android 创建与解析XML(四 )-- Pull方式 4. Android 创建与解析XML(五)-- Dom4j方式 其中,从处理方式看,有的采用了Java处理 XML的标准方式,有的是经过第三方改进后的XML处理方式:从事件角度看,有的是基于Dom树节点,有的基

Android创建与解析XML(五) Dom4j方式

1.Dom4j概述 dom4j is an easy to use, open source library for working with XML, XPath and XSLT on the Java platform using the Java Collections Framework and with full support for DOM, SAX and JAXP. dom4j官方 网址:dom4j dom4j源码下载:dom4j download 本示例中,需要导入dom4

Android 创建与解析XML(五)—— Dom4j方式

http://blog.csdn.net/sunboy_2050/article/details/7521605 1.Dom4j概述 dom4j is an easy to use, open source library for working with XML, XPath and XSLT on the Java platform using the Java Collections Framework and with full support for DOM, SAX and JAXP

使用PHP DOM-XML创建和解析XML文件_XML/RSS

使用PHP DOM-XML创建和解析XML文件 <?php    /**   * Topic:       Create and parse XML files using PHP DOM-XML   * Source:      http://www.php.net/domxml   * Reference:   http://www.zugeschaut-und-mitgebaut.de/php/extension.domxml.html   * Author:      urs@circl