当前位置:首页 > 日记 > 正文

用PHP读取和写入xmlDOM代码

用PHP读取和写入xmlDOM代码
复制代码代码如下所示:
使用DOM读取XML /
doc =新DOMDocument(美元);
文件->加载美元(测试。XML);
书=美元美元DOC -> getElementsByTagName(书);
foreach($书书美元){
本书作者=美元美元-> getElementsByTagName(作者);
作者=美元美元作者->(0)->项目节点; / /节点根据节点类型的属性设置或返回一个节点的值。
美元美元的出版商=书> getElementsByTagName(出版商);
出版商=美元美元出版商->(0)->节点项目;
标题=美元美元书-> getElementsByTagName(标题);
标题=美元美元标题->(0)->节点项目;
回声标题:$标题作者:$作者出版社:出版商;
}

*
脚本首先创建一个新的DOMDocument对象使用Load方法加载图书XML到对象后,该脚本使用getelementsbyname方法指定的名称下一个列表中的所有元素。
在本书结环,脚本使用getelementsbyname方法得到作者、出版商和标题tags.nodevalue节点,在节点的文本脚本然后显示值。
* /
复制代码代码如下所示:
使用SAX解析器读取XML /
g_books美元=阵();
g_elem美元= null;
功能startElement(美元美元美元的解析器,名称,属性){
全球g_books美元,g_elem美元;
如果($name = = 'book)g_books美元{ } =(阵列);
g_elem美元=美元的名字;
}
功能EndElement($解析器,$name){
全球g_elem美元;
g_elem美元= null;
}
功能的文本数据($解析器,$文本){
全球g_books美元,g_elem美元;
如果($ g_elem = = 'author g_elem美元= 'publisher| | | | { $ g_elem = =标题)
g_books美元{计数($ g_books)至g_elem } = $文本1;
}
}
美元xml_parser_create解析器=();
xml_set_element_handler($解析器,startElement、EndElement);
xml_set_character_data_handler($解析器,TextData);
$ F = fopen(测试。XML,R');
而($data = fread($,4096)){
xml_parse($解析器,$data);
}
xml_parser_free($分析器);
foreach($ g_books达书){
echo $书{标题}。- 'author'} { $书。—;
'publisher'} { echo的书。;
}

*
剧本第一集的g_books数组,它包含了所有的书和书的信息在内存中。的g_elem变量保存正在处理的脚本标签名,然后脚本定义的回调函数。在这个例子中,回调函数不同,endElement和文本数据。当标签被打开和关闭,startElement和EndElement功能称为分别。在开始标签和结束标签之间文本,文本数据称为。
在这个例子中,startElement标签查找图书标签并开始在本阵新的元素。然后,TextData功能着眼于当前的元素是否是一个出版商,标题或作者标签。如果是,函数将当前文本到当前的书。
为了分析继续,这个脚本创建的xml_parser_create功能分析器。然后,设置回调句柄。之后,脚本文件读取和发送文件的批量解析器。在文件读取的功能,xml_parser_free删除解析器的g_books数组的内容是脚本的最后输出。
* /
使用正则表达式解析XML /
复制代码代码如下所示:
=;
$ F = fopen(测试。XML,R');
而($data = fread($,4096)){ $ XML = $数据;}
Fclose($);
preg_match_all( / (。*) /美元美元,XML,书芯);
foreach(合书芯{ 1 } $块){
preg_match_all( / /(。*,美元区块,作者);
preg_match_all( / /(。*,美元块,$标题);
preg_match_all( / /(。*,$区块,$出版商);
回波($标题{ 1 } { 0 }。- $作者{ 1 } { 0 }。—。$发行商{ 1 } { 0 }。);
}

*
我不建议使用正则表达式读取XML,但有时这是最好的方式,因为是兼容的正则表达式函数总是可用的。不要使用正则表达式直接从用户读取XML,因为这类XML的格式或结构不能被控制。你应该从与DOM库或SAX解析器读取XML的用户。
* /
使用xml编写
复制代码代码如下所示:
图书=数组();
$图书(数组{ })
标题= > 'php黑客,
作者= >杰克Herrington,
出版商O'Reilly = >
);
$图书(数组{ })
标题= >播客广播的黑客,
作者= >杰克Herrington,
出版商O'Reilly = >
);
doc =新DOMDocument(美元);
文件-> formatoutput =真美元;
r = $doc -> createElement(书);
为文件-> appendChild(r);
foreach($书书美元){
$ = $doc -> createElement(书);
作者=美元美元DOC -> createElement(作者);
$作者-> appendChild($文件-> createTextNode($书{ 'author ' }));
$ B -> appendChild(合作者);
标题=美元美元DOC -> createElement(标题);
$标题-> appendChild($文件-> createTextNode($书{标题}));
$ B -> appendChild($标题);
出版商=美元美元DOC -> createElement(出版商);
为出版商-> appendChild($文件-> createTextNode($书{ 'publisher ' }));
$ B -> appendChild(美元发行);
$ R -> appendChild($);
}
/ / echo $文件-> savexml();

*
在脚本的顶部,有一些样本书被加载到图书数组中。
在样本加载脚本创建一个新节点添加书籍DOMDocument根了。剧本就创造了每本书的作者,标题,一个节点和出版商,并添加一个文本节点,每个节点的节点。每本书的最后一步是添加一遍书结根。
使用DOM的真正价值在于它创建的XML格式总是正确的,但是如果不能用DOM创建XML又会怎样呢
XML代码
复制代码代码如下所示:
< PHP
PHP写的XML
图书=数组();
$图书(数组{ })
标题= > 'php黑客,
作者= >杰克Herrington,
出版商O'Reilly = >
);
$图书(数组{ })
标题= >播客广播的黑客,
作者= >杰克Herrington,
出版商O'Reilly = >
);
>

< PHP
foreach($书达书)
{
>

< PHP
}
>
在本例中使用的test.xml如下:
复制代码代码如下所示:
Jack Herrington
php黑客
奥赖利
Jack Herrington
播客的黑客
奥赖利

相关文章

2012:Linux桌面更改到云桌面

2012:Linux桌面更改到云桌面

桌面,电脑软件,Linux,独家评论>文本 2012:Linux桌面更改到云桌面 2011-12-16 09:45:09来源:责任编辑:pply12作者:袁梦评论: 2010,全球云的海潮(或增长趋势)的强烈冲动必然会在桌面上回荡,对于Windows用户来说,这种混响可能不是很大,但对于Linux用户…

PHP积分的几种分析方法

PHP积分的几种分析方法

方法,几种,积分,电脑软件,PHP,地板舍入法语法:浮动地板整数(浮点值) 返回的值不超过整数的值,舍入舍入的值分数。 回音地板(4.3/4); 回音地板(9.999/9); The ceil method into a rounded grammar format: float (float ceil value) 返回下一个整数,不低…

npscheck是npscheck.exe-使用

npscheck是npscheck.exe-使用

电脑软件,npscheck,exe,点评:npscheck.exe是诺顿杀毒软件的一部分 进程文件:npscheck或npscheck.exe 过程名称:诺顿程序调度器事件检查程序 过程类别:安全风险的过程 英文描述: npscheck.exe是诺顿反病毒软件的一部分。这个过程,就是软件,它也被…

ORACLE7。X回滚表空间数据文件删除

ORACLE7。X回滚表空间数据文件删除

回滚,表空间,文件删除,数据,处理方法,Oracle当然你看是Oracle7。X回滚表空间数据文件删除处理方法。1。简介: 回滚段是数据库的一部分,它记录数据库的变化信息,利用这些信息来实现读一致性和数据库的恢复。如果回滚段失败,数据库不能正常启动,…

如何domino.exe过程结束

如何domino.exe过程结束

过程,结束,电脑软件,domino,exe,评论:对domino.exe工艺简介 进程文件:domino.exe 进程名称:Domino.exe 英语描述:N / A 过程分析:摄像机驱动程序。 过程位置:未知 程序用途:未知 作者:未知 属于:未知 安全等级(0-5):n(n / /是最危险的没有危险5) 磁盘软…

CF游戏不能听到枪的声音和人物的脚

CF游戏不能听到枪的声音和人物的脚

脚步声,声音,人物,游戏,电脑软件,问题: 当计算机玩穿越火线的游戏时,游戏的音乐是正确的。是什么原因 答案uff1a 可能是穿越火线系统中需要的声音部件损坏了,需要修理才能听到游戏中的所有声音,你可以使用360卫士的游戏修复功能来修复它。 方…

刷机安全隐患:独立刷确保安全

刷机安全隐患:独立刷确保安全

确保,安全隐患,刷机,独立,电脑软件,近日,央视315晚会曝光大唐高鸿预装软件的丑闻,在业内引起轩然大波。国家互联网急救中心在智能手机检测发现,许多用户实际上被秘密植入恶意程序,一些公司和经销商利用手机系统漏洞,在用户不知情的用户手机远程…

FrontPage2002应用生产能力四

FrontPage2002应用生产能力四

生产能力,电脑软件,简体中文网页的转换 FrontPage 2002提供了繁简转换的功能。一个简单的或传统的中国网站,可只要有一点轻微的。如果你想把当前网页为传统,只需点击菜单查看文件夹-简体中文传统的转变。如果你需要将多个网页的同时,必须先打…

Oracle查询存储过程作为横向报告方

Oracle查询存储过程作为横向报告方

查询,存储过程,报告,横向,方法,因为需要涉及两个小计,所以有必要进行计算。 思想: 1,将查询结果插入临时表中, 2,将统计结果插入临时表中。 3,查询临时表记录放置在游标中。 4,删除临时表记录。 包的定义声明: 复制代码代码如下所示: 创建包…

水印代码

水印代码

水印,代码,电脑软件,支持文本水印和图像水印 水印的位置是随机的或固定的。 水印透明设置(图像水印和文本水印都被支持) 文本水印的字体、颜色和大小 图像水印的背景透明性 复制代码代码如下所示: *添加水打印类,支持文本图片水印的透明设置,…

没有睡眠和休眠功能被发现在Win8(溶

没有睡眠和休眠功能被发现在Win8(溶

休眠,溶液,功能,电脑软件,问题: 最近,我想体验Windows8系统和计算机上安装系统。发现Win8无睡眠和休眠功能,是Win8不支持上述两种功能 答案uff1a Win8系统支持睡眠和休眠,但它是关闭的默认情况下,可以通过以下方法打开。 打开控制面板系统电…

Windows使用包含文本的文本搜索不

Windows使用包含文本的文本搜索不

文本,文件,搜索,解决方案,电脑软件,注释:使用包含文本搜索包含密钥的文件,搜索目录中的所有文档,但某些文件无法搜索。这里有个好办法。需要帮助的朋友能理解它。 在Windows操作系统中,使用包含的文本来搜索不包含关键字的文件。 有时,在目录…