`
k_lb
  • 浏览: 830834 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论
  • kitleer: 据我所知,国内有款ETL调度监控工具TaskCTL,支持ket ...
    kettle调度

PHP读写XML文件

    博客分类:
  • PHP
 
阅读更多

PHP读写XML文件
author: MoreWindows
blog: http://blog.csdn.net/MoreWindows

PHP可以方便的生成和读取XML文件。PHP主要通过DOMDocument、DOMElement和DOMNodeList来完成XML的读取与写入操作的。下面就简要说明下如何使用这些类。
一.生成XML文件
对于一个如下XML文件


[html] view plaincopy
<?xml version="1.0" encoding="UTF-8"?>
<article>
<title>PHP访问MySql数据库 初级篇</title>
<link>http://blog.csdn.net/morewindows/article/details/7102362</link>
</article>
我们来看看如何用PHP来生成:
首先new一个DOMDocument对象并设置编码格式。
$dom = newDOMDocument('1.0', 'UTF-8');
$dom->formatOutput= true;

再创建<article>结点和<title>结点
$rootelement =$dom->createElement("article");
$title =$dom->createElement("title", "PHP访问MySql数据库 初级篇");

然后创建带文本内容的<link>结点
$link =$dom->createElement("link","http://blog.csdn.net/morewindows/article/details/7102362");
也可以先生成<link>结点再为其添加文本内容。
$link = $dom->createElement("link");
$linktext =$dom->createTextNode('http://blog.csdn.net/morewindows/article/details/7102362');
$link->appendChild($linktext);

然后将<title>和<link>结点加入到<article>结点中去
$rootelement->appendChild($title);
$rootelement->appendChild($link);

最后将<article>结点加入到DOMDocument对象中,
$dom->appendChild($rootelement);

这样一个完整的XML就生成完毕了。再整出整个XML,
echo $dom->saveXML() ;
saveXML()也可以只输入部分XML文本,如echo $dom->saveXML($link);就只会输出<link>结点:<link>http://blog.csdn.net/morewindows/article/details/7102362</link>

下面再给出一个完整的PHP中数据内容输出到XML文件的例子。该例子会对将一个PHP数组输出到XML文件中。
[php] view plaincopy
<?php
//将数组输出到XML文件中
// by MoreWindows( http://blog.csdn.net/MoreWindows )
$article_array = array(
"第一篇" => array(
"title"=>"PHP访问MySql数据库 初级篇",
"link"=>"http://blog.csdn.net/morewindows/article/details/7102362"
),
"第二篇" => array(
"title"=>"PHP访问MySql数据库 中级篇 Smarty技术",
"link"=>"http://blog.csdn.net/morewindows/article/details/7094642"
),
"第三篇" => array(
"title"=>"PHP访问MySql数据库 高级篇 AJAX技术",
"link"=>"http://blog.csdn.net/morewindows/article/details/7086524"
),
);
$dom = new DOMDocument('1.0', 'UTF-8');
$dom->formatOutput = true;
$rootelement = $dom->createElement("MoreWindows");
foreach ($article_array as $key=>$value)
{
$article = $dom->createElement("article", $key);
$title = $dom->createElement("title", $value['title']);
$link = $dom->createElement("link", $value['link']);
$article->appendChild($title);
$article->appendChild($link);
$rootelement->appendChild($article);
}
$dom->appendChild($rootelement);
$filename = "D:\\test.xml";
echo 'XML文件大小' . $dom->save($filename) . '字节';
?>
运行该PHP会在D盘上生成test.xml文件(Win7 + XAMPP + IE9.0测试通过)

二.读取XML文件
以读取前文中生成的D:\\test.xml为例:
[php] view plaincopy
<?php
//读取XML文件
// by MoreWindows( http://blog.csdn.net/MoreWindows )
$filename = "D:\\test.xml";
$article_array = array();

$dom = new DOMDocument('1.0', 'UTF-8');
$dom->load($filename);

//得到<article>结点
$articles = $dom->getElementsByTagName("article");
echo '<article> 结点个数 ' . $articles->length;
foreach ($articles as $article)
{
$id = $article->getElementsByTagName("id")->item(0)->nodeValue;
$title = $article->getElementsByTagName("title")->item(0)->nodeValue;
$link = $article->getElementsByTagName("link")->item(0)->nodeValue;
$article_array[$id] = array('title'=>$title, 'link'=>$link);
}

//输出结果
echo "<pre>";
var_dump($article_array);
echo "</pre>";
?>
运行结果如下:


更详细的内容请访问PHP手册中的DOMDocument类。当然想要更加方便可以使用一些第三方提供的XML类库,这里就不一一列举了,有兴趣可以到网上找找。


原文地址:http://blog.csdn.net/morewindows/article/details/7241452

分享到:
评论

相关推荐

    浅析PHP对XML文档的基本操作.pdf

    本文档旨在介绍 PHP 对 XML 文档的基本操作,包括创建 XML 文档、遍历 XML 文档、添加 XML 数据、修改 XML 数据和删除 XML 数据。 创建 XML 文档 要创建 XML 文档,需要使用 PHP 的 DOMDocument 类。首先,创建一...

    php对xml文件增删改查,对xml数据进行分页

    下面将详细介绍如何使用`SimpleXMLElement`实现这些功能,以及如何对XML数据进行正序、倒序查询和分页。 首先,`SimpleXMLElement`类允许我们轻松地解析XML文档并将其转换为PHP对象。例如,加载一个名为"111.xml"的...

    php读写xml

    综上所述,通过PHP和XML的结合,我们可以实现对XML文件的读写操作,并在HTML页面中展示XML数据。压缩包中的"phpxml"文件可能包含了这些功能的实现代码,你可以参考这些代码加深理解并应用于实际项目中。

    PHP 读取 Android APK XML文件,无需JDK

    APK文件是基于Java的,通常需要JDK(Java Development Kit)来解析其内部结构,但在这个特定情况下,我们将学习如何利用PHP的内置功能来读取APK中的XML文件,从而避免依赖JDK。 首先,我们要了解XML文件在APK中的...

    利用DOM读写XML

    1. **加载XML文件**:使用`DOMDocument`的`loadXML`或`load`方法加载XML文件: ```php $doc = new DOMDocument(); $doc-&gt;load('input.xml'); ``` 2. **遍历DOM树**:通过DOMDocument对象,我们可以获取XML的根...

    PHP100视频教程90:PHP DOM 创建生成多功能 XML文件

    通过DOM,我们可以对XML文档进行添加、删除、修改和查找节点的操作。在PHP中,`DOMDocument`类是DOM的核心,它是整个XML文档的根节点,而`DOMElement`类则代表XML文档中的元素节点。 要创建一个新的XML文档,我们...

    php解析xml文档

    使用`simplexml_load_file()`函数可以加载XML文件并创建一个SimpleXMLElement对象。例如: ```php $xml = simplexml_load_file('path_to_your_xml_file.xml'); ``` 如果文件无法加载,此函数会返回`false`,...

    php-xml

    处理XML时,需要注意编码问题,确保XML文件和PHP脚本使用相同的字符编码。同时,应正确捕获和处理解析错误,如使用`libxml_use_internal_errors`和`libxml_get_errors`。 综上所述,PHP与XML的结合提供了多种处理...

    PHP中的生成XML文件的4种方法

    在PHP中,生成XML文件是常见的数据序列化和交换任务,尤其在Web服务和数据存储中扮演着重要角色。XML(可扩展标记语言)是一种结构化的数据格式,它允许我们以自定义的方式组织数据。以下是PHP中生成XML文件的四种...

    PHP操作xml类

    在"index.php"中,我们可以看到这个XML类的具体使用示例,而"index.xml"则是一个包含测试数据的XML文件。 PHP操作XML的基本步骤通常包括以下部分: 1. **加载XML文档**: 使用`DOMDocument`类或`SimpleXMLElement...

    在PHP中處理xml文件

    其中,DOMDocument是基于W3C的DOM(文档对象模型)标准,适用于处理大型XML文档,因为它可以将整个XML文件加载到内存中并提供灵活的遍历和修改能力。而SimpleXMLElement则提供了一个更简单的接口,适用于小型XML处理...

    PHP实现XML与数据格式进行转换类

    可以使用`DOMDocument::loadXML()`加载XML字符串,或`DOMDocument::load()`加载XML文件。然后,你可以通过DOMNode接口访问和操作XML节点,例如`DOMNode::appendChild()`添加子节点,`DOMNode::nodeValue`获取或设置...

    XML与XMLSchema

    【XML与XMLSchema】 ...了解并掌握XML和XML Schema对于进行Web服务、数据交换、配置文件管理和各种数据存储等任务至关重要。它们是现代信息技术中不可或缺的一部分,广泛应用于软件开发、网络通信和数据集成等领域。

    PHP查询xml,以数组返回

    例如,`xml.php`可能负责从XML文件中读取数据并将其转换为数组,然后通过HTTP请求传递给`index.php`,后者再根据需要对数据进行操作和展示。 总结,PHP处理XML并以数组返回的核心步骤包括加载XML文件、使用XPath...

    PHP与XML格式操作

    - DOM(Document Object Model):PHP提供了DOM扩展,可以解析XML文档并创建DOM对象树,允许开发者通过节点操作对XML进行读写。例如,使用`DOMDocument`类加载XML文件,`getElementsByTagName`查找特定元素,`...

    php读取XML文件

    处理XML文件时,我们可以使用PHP的内置库,如DOMDocument,它提供了一种解析和操作XML文档的方法。下面将详细介绍如何使用PHP读取和解析XML文件,以及在给定的示例中涉及的关键步骤。 首先,要加载XML文件,我们...

    PHP读取XML显示到表格

    例如,对XML数据进行过滤、排序或计算。这都需要根据具体需求进行相应的编程实现。 综上所述,"PHP读取XML显示到表格"这一技术涵盖了PHP的XML解析、HTML表格生成以及可能涉及的数据处理和样式设计。在阅读了相关...

Global site tag (gtag.js) - Google Analytics