`
041621219
  • 浏览: 17904 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用php读取xml数据

阅读更多
今天工作上碰到一个问题 由于我们的项目数据太少 所以需要从web search那边借调数据,他们只给我们提供了一个xml的接口。因此,我们需要把xml的数据转化成html呈现给大家。由于项目是基于php的,所以就摒弃了用js来读取xml选择了继续使用php。不过,我以前从来没有做过此类的尝试 所以找了很多网上资料同时参照了php的工作手册,发现在php4的环境下 用parser函数是一个比较好的选择(当然也可以用dom 但是需要对服务器重新进行配置 php5对dom支持得比较好)。

虽然以前没有接触过此类问题,但是还是很快就解决了,不过在解决和摸索的过程中发现网上关于此类的资料虽然不少,但是参差不齐,很多描述不是很详细,还是操作手册比较管用。

好了,言归正传:

parser是php内置的一个用来处理xml的解析器,它的工作由三个事件组成:起始标签、 读取数据、结束标签。

也就是说在对xml进行处理的时候每当遇到起始标签、数据和结束标签的时候函数会做相应的动作来完成对xml数据的转换。

php中对xml读取的相关函数的介绍:

引用:

--------------------------------------------------------------------------------

对象 XML解析函数 描述
元素 xml_set_element_handler() 元素的开始和结束
字符数据 xml_set_character_data_handler() 字符数据的开始
外部实体 xml_set_external_entity_ref_handler() 外部实体出现
未解析外部实体 xml_set_unparsed_entity_decl_handler() 未解析的外部实体出现
处理指令 xml_set_processing_instruction_handler() 处理指令的出现
记法声明 xml_set_notation_decl_handler() 记法声明的出现
默认 xml_set_default_handler() 其它没有指定处理函数的事件

--------------------------------------------------------------------------------

下面就给大家举一个小小的例子用parser函数来读取xml数据:



<?php
$parser = xml_parser_create(); //创建一个parser编辑器
xml_set_element_handler($parser, "startElement", "endElement");//设立标签触发时的相应函数 这里分别为startElement和endElenment
xml_set_character_data_handler($parser, "characterData");//设立数据读取时的相应函数
$xml_file="1.xml";//指定所要读取的xml文件,可以是url
$filehandler = fopen($xml_file, "r");//打开文件




while ($data = fread($filehandler, 4096))
{
    xml_parse($parser, $data, feof($filehandler));
}//每次取出4096个字节进行处理

fclose($filehandler);
xml_parser_free($parser);//关闭和释放parser解析器


$name=false;
$position=false;
function startElement($parser_instance, $element_name, $attrs)        //起始标签事件的函数
{
   global $name,$position; 
   if($element_name=="NAME")
   {
   $name=true;
   $position=false;
   echo "名字:";
  }
  if($element_name=="POSITION")
   {$name=false;
   $position=true;
   echo "职位:";
  }
}

function characterData($parser_instance, $xml_data)                  //读取数据时的函数
{
   global $name,$position;
   if($position)
    echo $xml_data."<br>";
    if($name)
     echo $xml_data."<br>";
}

function endElement($parser_instance, $element_name)                 //结束标签事件的函数
{
global $name,$position;
$name=false;
$position=false; 
}

?>

xml文件代码如下:



<?xml version="1.0"?>
<employees>
<employee>
<name>张三</name>
<position age="45">经理</position>
</employee>
<employees>
<employee>
<name>李四</name>
<position age="45">助理</position>
</employee>
</employees>

这个程序的结果如下:

引用:
--------------------------------------------------------------------------------

名字:张三 职位:经理
名字:李四 职位:助理

分享到:
评论
2 楼 yunmoxue 2010-02-21  
换成url的时候怎么不管用了..- -
1 楼 yunmoxue 2010-02-21  
谢谢..不过 下边给的 xml 例子中间多了一个 <employees> ...

额..原谅我直接copy走试了试,.  呵呵.. 感谢.

相关推荐

    php读取xml文件类

    下面将详细讨论PHP如何利用DOMDocument类读取XML文件以及这个“php读取xml文件类”的基本工作原理。 首先,DOMDocument类是PHP内建的DOM扩展的一部分,它遵循DOM(Document Object Model)规范,为XML文档提供了一...

    PHP读取XML显示到表格

    首先,我们需要了解如何使用PHP读取XML文件。PHP提供了DOMDocument和SimpleXMLElement类来解析XML文档。DOMDocument适用于处理大型或复杂的XML文档,因为它可以构建整个文档对象模型,允许我们通过节点遍历、修改和...

    php生成xml并读取xml中的数据已经测试号

    二、PHP读取XML数据 1. 加载XML文件:使用`DOMDocument`的`loadXML()`或`load()`方法加载XML文件。如果是从文件中加载,使用`load()`方法: ```php $xmlFile = 'input.xml'; $xml = new DOMDocument(); $xml-&gt;load...

    php从数据库中读取数据生成xml

    该脚本展示了如何使用PHP从MySQL数据库中读取数据,并将这些数据转换成XML格式。需要注意的是,所使用的`mysql_`函数已经废弃,建议使用更现代的方法如`mysqli_`系列函数或PDO扩展来实现相同的功能,以确保代码的...

    网页读取xml文档并分页

    本篇文章将详细讲解如何在Web环境中读取XML文档,并实现分页显示数据的方法。 首先,我们需要理解XML的基本概念。XML是一种自描述性的语言,它的结构清晰,易于机器解析和人类阅读。XML文档由元素、属性、文本内容...

    读取XML读取XML

    在Java中,我们通常使用DOM(Document Object Model)解析器或SAX(Simple API for XML)解析器来读取XML文件。DOM解析器将整个XML文件加载到内存中,形成一个树形结构,便于访问任何部分。例如,使用JDOM库读取XML...

    php读取xml文件类.zip

    提供一款php xml读取类,很简单的一个xml分析类了,它可读取指它xml文档,并且输出或取得指定节点的xml数据,本xml类代码是利用了php domdocument来解析xml文档。

    PHP读取xml1

    在本文中,我们将深入探讨如何使用PHP来读取XML文件,包括使用DOM库和SAX解析器两种不同的方法。XML(eXtensible Markup Language)是一种用于存储和传输数据的标准格式,广泛应用于Web应用程序和数据交换。PHP作为...

    PHP中使用xmlreader读取xml数据示例

    XMLReader是一个向前只读的迭代器,它以流的形式逐节点读取XML文档,这使得处理大文件时非常高效,因为它不会一次性加载整个文件到内存。 在给出的示例中,我们看到一个XML文件,它包含了两个节目(show)的信息,...

    php读取XML文件

    下面将详细介绍如何使用PHP读取和解析XML文件,以及在给定的示例中涉及的关键步骤。 首先,要加载XML文件,我们需要创建一个DOMDocument对象并调用其`load()`方法。在这个例子中,XML文件的URL是'...

    xml实现静态网页读取动态数据

    此资料可以让静态的html页面可以实现像jsp,asp,asp.net,php等动态读取数据的效果,只需用到javascript读取xml里面的数据就可以啦,里面的很多的例子讲说,只要看一遍就会做啦。。。

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

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

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

    PHP作为一款流行的服务器端脚本语言,提供了强大的XML处理能力,允许开发者轻松地将XML数据与各种其他格式(如数组、JSON等)进行互换。本篇文章将深入探讨如何使用PHP实现XML与数据格式之间的转换,并基于提供的类...

    PHP读取并输出XML文件数据的简单实现方法

    除了使用PHP内置函数读取XML数据之外,开发者还可以考虑使用一些在线工具,这些工具为XML数据的转换、格式化和压缩提供了便捷的途径。例如,提供的在线工具中包括了XML和JSON格式之间的互相转换,以及在线格式化和...

    php读取xml

    以下将详细介绍如何使用PHP来读取XML文件以及遍历和获取特定元素的信息。 1. SimpleXML扩展 SimpleXML是PHP中处理XML的一种简单方法,它提供了一种面向对象的方式来访问XML数据。首先,我们需要确保SimpleXML扩展...

    PHP文本的读取转换为XML

    总结来说,这个例子展示了如何使用PHP从TXT日志文件中读取数据,将其转换为XML结构,并在浏览器中显示。在实际项目中,你可能需要根据日志文件的具体格式调整解析和构建XML的逻辑。同时,考虑到性能和效率,对于大型...

    用PHP读取和编写XML DOM

    【PHP读取和编写XML DOM】 XML是一种通用的数据存储格式,它定义了标记和属性,但不规定数据内容和格式。格式良好的XML文件需要有对称的标记和正确的字符编码。例如,XML文件可以用来表示图书列表,如清单1所示。 ...

    读取XML元素值.rar

    在编程中,经常需要读取XML文档中的特定元素值,以便处理或解析这些数据。本教程将详细介绍如何在不同的编程语言中读取XML元素值。 1. Python中的XML处理 Python提供了几个库来处理XML,如`xml.etree.ElementTree`...

    PHP读取和编写XMLDOM

    标题提到的“PHP读取和编写XMLDOM”是指使用PHP处理XML文档,特别是通过DOM库来操作XML。XML(可扩展标记语言)是一种用于存储和传输结构化数据的标准格式,它允许自定义标记来描述数据。XML文档通常包含元素(标记...

Global site tag (gtag.js) - Google Analytics