易截截图软件、单文件、免安装、纯绿色、仅160KB

php下哪种方法合适解析xml,转换成json格式

解析xml文档的类库有很多种,比较常用的就是SimpleXML,DOM Document,XMLReader,基于SAX的xml_parse函数。
根据xml文档结构,以及需求的不同,要选择好对应的类库。
解析小的文档的话,使用SimpleXML比较合适,简单的几个函数就可以搞定。
如果文档非常巨大,最好是XMLReader打开,中间转换成DOM来解析,感觉DOM与XPath结合的比较好。
以上是解析已知文档结构的XML,比如知道使用了什么命名空间,有哪些主要的节点等等信息的XML文档。
如果是要解析任意的XML文档,还是SAX的xml_parse比较合适,自己定义三个handler函数。
比如笔者就是用xml_parse来解析任意的xml文档,生成json格式的字符串。
下面把使用xml_parse来解析xml文档的所需要的三个handler讲解一遍。
首先是三个变量
$depth是指xml文档结构的层数,第一层的值是0。
$json_array是一个多位数组,每一个元素的成员是一个json数组,直接可以用json_encode函数。
这个数组的第一维的index是上面的$depth,解析完每一层的xml结构后,都将其结果"粘贴"到其父节点的最后一个字节点后边。
解析完成后$json_array[0]就是所有的xml文档内容都在里面啦。
$tag_name_stack也是一个数组,后进先出的数组,正在处理的标签名就存在这里面,处理完一个标签后,就将其请出数组。
private $depth = -1;
private $json_array = array();
private $tag_name_stack = array();
private function start_handler($parser, $name, $attrs) {
$arrts_array = array();
foreach ($attrs as $attr_name => $attr_value) {
$attr_name = str_replace(":", "$", $attr_name);
$arrts_array[$attr_name]=$attr_value;
}
$tag_name = str_replace(":", "$", $name);
$this->tag_name_stack[] = $tag_name;
$this->depth++;
//if (count($arrts_array) != 0) {
$this->json_array[$this->depth][$tag_name] = $arrts_array;<br>
首先是把该标签的属性都装入一个数组
foreach ($attrs as $attr_name => $attr_value) {
      $attr_name = str_replace(":", "$", $attr_nam


相关文档:

.net 操作XML小结

一、简单介绍
using System.Xml;
//初始化一个xml实例
XmlDocument xml=new XmlDocument();
//导入指定xml文件
xml.Load(path);
xml.Load(HttpContext.Current.Server.MapPath("~/file/bookstore.xml"));
//指定一个节点
XmlNode root=xml.SelectSingleNode("/root");
//获取节点下所有直接子节点
XmlNodeList ch ......

XML字符串和XML文档之间的自由转换

本文系转载,谨向转载处空间拥有者及源出处文章作者表示感谢!
转载处:http://henry19890701.javaeye.com/blog/481462
源出处:http://www.ziliaonet.com/tech/netprogramme/XML/200605/69398.html
在做一般的XML数据交换过程中,我更乐意传递XML字符串,而不是格式化的XML Document。这就涉及到XML字符串和Xml Docume ......

BDB官方给PHP提供的接口的程序员真是不负责

刚写完前面的日志,又发现一个Bug:
根据Oracle官方提供的说明:
http://www.oracle.com/technology/documentation/berkeley-db/db/programmer_reference/ext_php.html
class Db4的声明如下:
class Db4 {
function Db4($dbenv = null) {} // create a new Db4 object using
......

PHP图表制作工具集

转自:http://nedvedheqing.javaeye.com/blog/383506
1. PHP扩展
JpGraph:http://www.aditus.nu/jpgraph/
ChartDirector:http://www.advsofteng.com/
2. JavaScript
Flot (http://code.google.com/p/flot/
) - Flot 为 jQuery 提供的javascript代码库. 容易使用,有特色的图表,提供交互功能(能够放大缩小数据区域� ......

php删除文件


如何用php删除文件呢?
php中有个函数叫作unlink。只要一个参数,表示文件路径就行了。
bool unlink ( string filename)
成功删除返回真,否则返回假。
这次我在项目中,需要用到删除文件操作。为了完美的操作,首先要判断一下这个路径的文件是否存在,用file_exists函数。如若存在,则去删除文件。具体代码如下:
i ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号