热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用PHPDOM-XML创建和解析XML文件sdyqingdao(翻译)

?php***Topic:CreateandparseXMLfilesusingPHPDOM-XML*Source:www.php.netdomxml*Reference:www.zugeschaut-und-mitgebaut.dephpextension.domxml.html*Author:urs@circle.ch,16-1-2001**使用PHPDOM-XML创建和解析XML

/**

* 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("
".htmlspecialchars($doc->dumpmem() )."
" );



// 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("

");

//text node 对象

$foo = xpath_eval($ctx, "//text");

print_r($foo);

print("

");

// 第一个text node对象

$foo = xpath_eval($ctx, "//text[1]");

print_r($foo);

print("

");

// 第二个text node对象

$foo = xpath_eval($ctx, "//text[2]");

print_r($foo);

print("

");

// 第三个answer对象

$foo = xpath_eval($ctx, "//answer[3]");

print_r($foo);

print("

");



//第三个text node的类型,名称和内容

$foo = xpath_eval($ctx, "//text[3]");

$tmp = $foo->nodeset;

print_r($tmp);

print("
");

print($tmp[0]->type) . "; ";

print($tmp[0]->name) . "; ";

print($tmp[0]->content);



?>



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



PHPDOM类库请到http
://www.zend.com/download
推荐阅读
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • IT方面的论坛太多了,有综合,有专业,有行业,在各个论坛里混了几年,体会颇深,以前是论坛哪里人多 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
author-avatar
小丘
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有