数码资讯
PHP操作的各种方法(更详细)
XML是一种流行的半结构化文件格式,它以类似于数据库的格式存储数据,在实际应用中,一些简单、不安全的数据通常以XML文件的格式存储,一方面通过减少与数据库的交互来提高阅读效率。另一方面,它充分利用了XML的优越性,减少了编程的难度。 PHP提供了一整套读取XML文件的方法,而且编写基于XML的脚本很
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
XML是一种流行的半结构化文件格式,它以类似于数据库的格式存储数据,在实际应用中,一些简单、不安全的数据通常以XML文件的格式存储,一方面通过减少与数据库的交互来提高阅读效率。另一方面,它充分利用了XML的优越性,减少了编程的难度。
PHP提供了一整套读取XML文件的方法,而且编写基于XML的脚本很容易。本章介绍了PHP和XML的操作方法,并简要介绍了几种常见的XML类库。
1 XML简介
XML是可扩展标记语言(可扩展标记语言)的缩写,它是一种类似于HTML的标记语言,与HTML不同,XML主要用于描述数据和存储数据,而HTML用于显示数据。
XML是一种元标记语言,开发人员可以根据自己的需要创建标记的名称。
复制代码代码如下所示:
欢迎光临
西蒙
欢迎到XML的留言!!
这是一个带有标签的消息。在消息、标题、作者、内容、消息的完整表达中。
在XML文件的顶部,它通常用来标识XML数据的起始和XML数据的标准版本信息。
700)这个高度= '700;边境= 0 >
XML的发展非常迅速。近年来,许多软件开发人员开始使用XML开发标准进行应用程序开发,许多新技术都建立在XML数据上,这意味着XML将成为Web技术的一个组成部分,如HTML。
2简单的XML操作
在实际应用中,PHP和XML的作用得到了广泛的应用。SimpleXML组件是PHP5新加
相比传统的XML组件的一个单一的XML操作组件的使用非常简单,和SimpleXML组件的使用非常简单,这一部分将用于
通过SimpleXML组件操作XML的方法进行了详细的描述。
2.1创建一个SimpleXML对象
SimpleXML对象是临时变量,用来暂时存储XML数据,并对XML的操作是通过操作SimpleXML对象进行SimpleXML组件提供了两种方法创建SimpleXML对象。第一种方法是使用simplexml_load_string函数读取一个字符串变量来完成创作的XML数据,并它的语法格式如下。
simplexml_load_string(字符串)
数据变量是用来存储XML数据。下面的代码使用simplexml_load_string函数创建一个SimpleXML对象
复制代码代码如下所示:
< PHP
$ = xml数据定义
生产支持
十万零一
西蒙
二十四
1982-11-06
五千
一千
十万零二
伊莱恩
二十四
1982-01-01
六千
二千
测试中心
十一万零一
海伦
二十三
1983-07-21
五千
一千
XML;
XML = simplexml_load_string美元(美元数据); / /创建一个SimpleXML对象
print_r($ XML); / / XML输出
>
在上面的例子中,$data变量存储一段XML数据,simplexml_load_string函数变换变量$数据到SimpleXML对象。对象的结构可以通过对print_r函数的输出,并对运行结果如下。
复制代码代码如下所示:
simplexmlelement对象
(
{离开数组
(
{ 0 } = > simplexmlelement对象
(
{产品支持
{员工} = > simplexmlelement对象
({数组)
{ 0 } = > simplexmlelement对象
({ serial_no } = > 100001
{西蒙
{年龄>24
{生日} = > 1982-11-06
{工资} = 5000
{奖金} = 1000
)
{ 1 } = > simplexmlelement对象
({ serial_no } = > 100002
{伊莲
{年龄>24
{生日} = > 1982-01-01
{工资} = 6000
{奖金} = 2000
)
)
)
)
{ 1 } = > simplexmlelement对象
(
{测试中心
{员工} = > simplexmlelement对象
(
{员工} = > simplexmlelement对象
(
{ serial_no } = > 110001
{海伦
{年龄>23
{生日} = > 1983-07-21
{工资} = 5000
{奖金} = 1000
)
)
)
)
)
正如你可以看到从输出的SimpleXML对象的结构是完全相同的XML数据格式。
第二种方法是使用simplexml_load_flie函数读取一个XML文件来完成创作,其语法格式如下。
simplexml_load_file(字符串的文件名)
这里的文件名变量是存储XML数据文件的文件名和路径。下面的代码使用simplexml_load_file函数创建一个SimpleXML对象。
复制代码代码如下所示:
< PHP
XML simplexml_load_file美元=('example。XML); / /创建一个SimpleXML对象
print_r($ XML); / / XML输出
>
在这,在example.xml存储数据是完全一样的美元以上数据,以及运行的结果都是一样的上面。
以上两种方法做同样的功能,而区别在于XML数据来源不同。如果XML数据源是在PHP脚本文件,你需要使用simplexml_load_string创造它。如果XML数据源是在一个单独的XML文件,你需要使用simplexml_load_file创造它。
2.2读取XML数据在SimpleXML对象
之前的介绍是用print_r函数读取SimpleXML对象的数据,并返回类似的阵列结构的结果。显然,这种显示方法在实际应用中是不可取的。在这里,我们将介绍在SimpleXML对象读取XML数据的几种方法。
的1.var_dump功能显示对象的详细信息
的var_dump函数可以用来显示SimpleXML对象的详细信息。与print_r函数相比,该var_dump功能显示更完整的信息,其语法如下。
无效var_dump(object1,object2…)
下面的代码使用var_dump函数输出对象的细节,在上面的例子中。
复制代码代码如下所示:
运行结果如下所示。
复制代码代码如下所示:
对象(simplexmlelement)# 1(1){ {离开} = >(2){阵列
{ 0 } >
对象(simplexmlelement)# 2(2){
{名称}
字符串(18)生产支持
{雇员}
对象(simplexmlelement)# 4(1){
{雇员
数组(2){
{ 0 } >
对象(simplexmlelement)# 5(6){
{serial_no} = >
字符串(6)100001
{名称}
字符串(5)西蒙
{年龄}
字符串(2)24
{ 生日}
字符串(10)1982-11-06
{工资}
字符串(7)5000
{红利}
字符串(7)1000
}
{ 1 } >
对象(simplexmlelement)# 6(6){
{serial_no} = >
字符串(6)100002
{名称}
字符串(6)伊莲
{年龄}
字符串(2)24
{ 生日}
字符串(10)1982-01-01
{工资}
字符串(7)6000
{红利}
字符串(7)2000
}
}
}
}
{ 1 } >
对象(simplexmlelement)# 3(2){
{名称}
字符串(14)测试中心
{雇员}
对象(simplexmlelement)# 7(1){
{雇员
对象(simplexmlelement)# 8(6){
{serial_no} = >
字符串(6)110001
{名称}
字符串(5)海伦
{年龄}
字符串(2)23
{ 生日}
字符串(10)1983-07-21
{工资}
字符串(7)5000
{红利}
字符串(7)1000
}}}}}
与前print_r输出结果进行比较,对var_dump函数的输出函数是更严格的,并在对象的每个属性的数据类型进行分析,在实际应用中,var_dump功能往往在程序调试目标检测的应用。
2。读取XML数据中的标签
类似的,操作数组类型的变量,读取XML也可以以类似的方式进行的。例如,如果你需要阅读的名称属性下的离开标签上面的XML数据,你可以使用foreach功能做它,如下面的代码
显示出来。
复制代码代码如下所示:
以美元计)
{
回声名称;
}
>
运行结果如下所示。
生产支持
测试中心
读取每个分离标记中的XML文件读/ XML / XML数据。
输出 name属性
也可以使用括号直接读取指定的XML数据标签。
复制代码代码如下所示:
< PHP
XML simplexml_load_file美元=('example。XML); / /读取XML文件
$>离开>名称{ 0 };输出节点
>
运行结果如下所示。
生产支持
所有的sublabels下一个标签,SimpleXML组件提供阅读的孩子的方法。例如,对于离开标签在上面的XML数据,它包括两个子标签:名称和员工。下面的代码第一次离开标签下实施的sublabels阅读。
复制代码代码如下所示:
< PHP
XML simplexml_load_file美元=('example。XML);
foreach($ XML ->分离->儿童)为($ / /离开)读周期下离开标签的子标签
{
var_dump(合开); / / XML数据输出标签
}
>
运行结果如下所示。
复制代码代码如下所示:
对象(simplexmlelement)# 3(1){
{ 0 } >
字符串(18)生产支持
}
对象(simplexmlelement)# 5(1){
{雇员
数组(2){
{ 0 } >
对象(simplexmlelement)# 3(6){
{serial_no} = >
字符串(6)100001
{名称}
字符串(5)西蒙
{年龄}
字符串(2)24
{ 生日}
字符串(10)1982-11-06
{工资}
字符串(7)5000
{红利}
字符串(7)1000
}
{ 1 } >
对象(simplexmlelement)# 6(6){
{serial_no} = >
字符串(6)100002
{名称}
字符串(6)伊莲
{年龄}
字符串(2)24
{ 生日}
字符串(10)1982-01-01
{工资}
字符串(7)6000
{红利}
字符串(7)2000
}
}
}
你可以看到,孩子们使用的方法后,所有的sublabels被视为一个新的XML文件。
三.基于xml数据路径的查询
SimpleXML组件提供了一个基于XML的数据路径查询的方法,XML数据的路径是整个标签的XML的根通过一个标签。这条道路使用斜杠 /分区的卷标名称。例如,对于上面的XML数据,我们需要查询的所有值在标签名称开始离开,离开,从根的员工和员工的标签。
/ / /离开离开员工/员工/的名字。SimpleXML组件使用XPath的方法来解析路径,其语法格式如下所示。
XPath(字符串路径)
路径是路径。这个方法返回一个包含要查询的值的数组。下面的代码查询上面XML数据中的所有名称标记。
复制代码代码如下所示:
< PHP
XML simplexml_load_file美元=('example。XML); / /读取XML文件
元(XML)
var_dump($结果); / /输出节点
>
运行结果如下所示。
复制代码代码如下所示:
数组(3){
{ 0 } = >对象(simplexmlelement)# 2(1){
{ 0个字符串(5)西蒙
}
{ 1 } = >对象(simplexmlelement)# 3(1){
{ 0个字符串(6)伊莲
}
{ 2 } = >对象(simplexmlelement)# 4(1){
{ 0个字符串(5)海伦
}
}
如您所见,所有的名称标签都会被查询。
2.3 xml数据修改
XML数据的修改是类似于XML数据中的标签的方法阅读方法,即通过直接修改在SimpleXML对象标签的值。下面的代码实现了一个修改的第一名sublabel离开标签在上面的XML数据。
复制代码代码如下所示:
< PHP
XML simplexml_load_file美元=('example。XML); / /读取XML
$ > >离开>名称{ 0 } =人力资源;
>
改造后,它没有对XML文件的任何影响。然而,在节目中,该SimpleXML对象读将使用一个修正值。
2.4标准化XML数据
SimpleXML也提供对XML数据,XML的标准化方法,XML的方法可以有效地重新排列的SimpleXML对象的内容与XML 1标准与字符串数据类型返回。下面的代码实现了上面的XML数据的标准化。
复制代码代码如下所示:
< PHP
XML simplexml_load_file美元=('example。XML); / /读取XML数据
回声($ XML -> XML); / /标准的XML数据
>
2.5 xml数据存储
存储XML数据的SimpleXML一个对象到XML文件的方法很简单。对XML方法的输出结果输出到一个文件。下面的代码首先修改离开名称在XML文件中,然后输出修改后的XML数据到另一个XML文件。
复制代码代码如下所示:
< PHP
XML simplexml_load_file美元=('example。XML); / /读取XML数据
newxml美元=美元-> XML XML(XML); / /标准数据
$ FP = fopen(newxml.xml,W); / /打开数据写入XML文件
fwrite($ FP,newxml美元); / /写XML数据
Fclose($ FP); / /关闭文件
>
代码运行后,你可以看到,在newxml.xml文件的XML数据如下图所示。
如您所见,XML文件的更改已保存到输出文件中。
动态创建3个XML文档
在实际应用中,动态生成的XML文档的操作是必要的。SimpleXML组件之前介绍不创建一个XML文档提供了一条途径。因此,如果你需要动态创建一个XML文档,它往往是使用DOM component.dom创造的是文档对象模型的缩写,文档对象模型,和DOM组件提供了一个树解析模式的XML文档。下面的代码使用DOM组件创建一个XML文档。
复制代码代码如下所示:
< PHP
创建一个新的DOM文档
美元=新DOMDocument(DOM);
创建根节点中的分离标记
离开=美元美元DOM -> createElement('departs);
DOM美元-> appendChild($离去);
在离开标签下创建离开孩子标签
离开=美元美元DOM -> createElement('depart);
离开美元-> appendChild($离开);
在离职标签标签下创建员工子女
员工=美元美元DOM -> createElement('employees);
离开美元-> appendChild($员工);
在员工选项卡标签下创建雇员子
员工=美元美元DOM -> createElement('employee);
为员工-> appendChild($员工);
/ /创建serial_no员工选项卡标签下的孩子
serial_no美元=美元DOM -> createElement('serial_no);
为员工-> appendChild($ serial_no);
/ /增值节点100001标签serial_no
serial_no_value美元=美元-> createTextNode(DOM '100001);
serial_no美元-> appendChild($ serial_no_value);
xml输出数据
echo DOM -> savexml();
>
输出结果如下所示。
十万零一
除了用于动态创建XML文档之外,还可以使用DOM组件读取XML文件。
读取表面XML文件。
复制代码代码如下所示:
< PHP
美元=新的DOM(DOMDocument); / /创建一个DOM对象
$ DOM ->负荷('example。XML); / /读取XML文件
根=美元美元DOM ->文档元素}; / /把数据从XML根
read_child($根); / /电话read_child函数读取根对象
功能read_child(元结)
{
美元儿童= $节点->子; / /所有子节点为节点
foreach(美元儿童达E) / /阅读每个子节点周期
{
如果(a ->节点类型= = xml_text_node) / /如果文本输出节点
{
echo $ E ->节点。;
}
如果(a ->节点类型= = xml_element_node) / /如果子节点的节点对象,调用函数
{
read_child(e);
}
}
}
>
运行结果如下所示。
复制代码代码如下所示:
引用
生产支持
十万零一
西蒙
二十四
1982-11-06
五千
一千
十万零二
伊莱恩
二十四
1982-01-01
六千
二千
测试中心
十一万零一
海伦
二十三
1983-07-21
五千
一千
上面的示例使用一种递归的方式处理XML数据,以实现XML输出数据中所有文本类型标签的功能。
4 XML应用示例-留言簿
介绍了xml的基本操作。本节将以XML消息手册为例,说明如何在实际应用中实现PHP和XML数据之间的交互。
4.1 xml文件结构设计
XML文件来存储XML数据,即在留言簿上留言。在这里,每一个消息,在XML数据主要有三个方面的内容:信息的标题,voicer的名称,该消息的内容。因此,XML文件的格式设计如下。
复制代码代码如下所示:
下面是消息的标题
这是信息
这是信息
4.2个提交页面的编写
消息页由两个页面组成:一个是允许访问者编写消息表单的HTML文件,一个是用于处理访问者输入的PHP脚本。
复制代码代码如下所示:
发布新消息
发布新消息
标题
作者
内容
用于处理用户输入PHP脚本时,其基本逻辑是首先创建DOM对象,然后读取XML文件中的XML数据,然后在XML对象中创建一个新节点并存储用户输入,将XML数据输出到原始XML文件。
复制代码代码如下所示:
< PHP
$留言=新(DOMDocument); / /创建一个新的DOM对象
$留言->负荷('db /留言。XML); / /读取XML数据
线程=美元美元留言->文档元素}; / / XML结构的根
创建新的线程节点
线程=美元美元留言-> createElement('thread);
为线程-> appendChild(合线);
在新的线程节点中创建标题标签
标题=美元美元留言-> createElement(标题);
$标题-> appendChild($留言-> createTextNode($ _post {标题}));
$线-> appendChild($标题);
在新的线程节点中创建作者标记
作者=美元美元留言-> createElement('author);
$作者-> appendChild($留言-> createTextNode($ _post { 'author ' }));
$线-> appendChild(合作者);
在新的线程节点中创建内容标记
$content = $留言-> createElement('content');
$内容-> appendChild($留言-> createTextNode($ _post { 'content' }));
$线-> appendChild(内容);
将XML数据写入文件。
$ FP = fopen(分贝/ guestbook.xml,W);
如果(fwrite($ FP,$留言-> savexml()))
成功地提交了回声消息。
其他的
回声消息提交失败;
Fclose($ FP);
>
在浏览器中运行上面的HTML文件并填写相应的消息,如图2所示。
700)这个高度= '700;边境= 0 >
图2发布一个新的消息接口
当单击提交按钮时,XML文件的内容如下所示。
您可以看到消息已存储在XML文件中。
4.3个显示页面的编写
显示页面可以很容易实现与前面介绍的SimpleXML组件,具体的实现代码如下所示。
复制代码代码如下所示:
< PHP
用来存储消息的是打开的xml文件。
$留言= simplexml_load_file('db /留言。XML);
foreach($留言->线程$Th) / /循环读取每个线程标记的XML数据
{
回声标题。;
回声作者。;
回声内容。;
回声;
}
>
查看浏览器中的运行结果,如图3所示。
700)这个高度= '700;边境= 0 >
PHP提供了一整套读取XML文件的方法,而且编写基于XML的脚本很容易。本章介绍了PHP和XML的操作方法,并简要介绍了几种常见的XML类库。
1 XML简介
XML是可扩展标记语言(可扩展标记语言)的缩写,它是一种类似于HTML的标记语言,与HTML不同,XML主要用于描述数据和存储数据,而HTML用于显示数据。
XML是一种元标记语言,开发人员可以根据自己的需要创建标记的名称。
复制代码代码如下所示:
欢迎光临
西蒙
欢迎到XML的留言!!
这是一个带有标签的消息。在消息、标题、作者、内容、消息的完整表达中。
在XML文件的顶部,它通常用来标识XML数据的起始和XML数据的标准版本信息。
700)这个高度= '700;边境= 0 >
XML的发展非常迅速。近年来,许多软件开发人员开始使用XML开发标准进行应用程序开发,许多新技术都建立在XML数据上,这意味着XML将成为Web技术的一个组成部分,如HTML。
2简单的XML操作
在实际应用中,PHP和XML的作用得到了广泛的应用。SimpleXML组件是PHP5新加
相比传统的XML组件的一个单一的XML操作组件的使用非常简单,和SimpleXML组件的使用非常简单,这一部分将用于
通过SimpleXML组件操作XML的方法进行了详细的描述。
2.1创建一个SimpleXML对象
SimpleXML对象是临时变量,用来暂时存储XML数据,并对XML的操作是通过操作SimpleXML对象进行SimpleXML组件提供了两种方法创建SimpleXML对象。第一种方法是使用simplexml_load_string函数读取一个字符串变量来完成创作的XML数据,并它的语法格式如下。
simplexml_load_string(字符串)
数据变量是用来存储XML数据。下面的代码使用simplexml_load_string函数创建一个SimpleXML对象
复制代码代码如下所示:
< PHP
$ = xml数据定义
生产支持
十万零一
西蒙
二十四
1982-11-06
五千
一千
十万零二
伊莱恩
二十四
1982-01-01
六千
二千
测试中心
十一万零一
海伦
二十三
1983-07-21
五千
一千
XML;
XML = simplexml_load_string美元(美元数据); / /创建一个SimpleXML对象
print_r($ XML); / / XML输出
>
在上面的例子中,$data变量存储一段XML数据,simplexml_load_string函数变换变量$数据到SimpleXML对象。对象的结构可以通过对print_r函数的输出,并对运行结果如下。
复制代码代码如下所示:
simplexmlelement对象
(
{离开数组
(
{ 0 } = > simplexmlelement对象
(
{产品支持
{员工} = > simplexmlelement对象
({数组)
{ 0 } = > simplexmlelement对象
({ serial_no } = > 100001
{西蒙
{年龄>24
{生日} = > 1982-11-06
{工资} = 5000
{奖金} = 1000
)
{ 1 } = > simplexmlelement对象
({ serial_no } = > 100002
{伊莲
{年龄>24
{生日} = > 1982-01-01
{工资} = 6000
{奖金} = 2000
)
)
)
)
{ 1 } = > simplexmlelement对象
(
{测试中心
{员工} = > simplexmlelement对象
(
{员工} = > simplexmlelement对象
(
{ serial_no } = > 110001
{海伦
{年龄>23
{生日} = > 1983-07-21
{工资} = 5000
{奖金} = 1000
)
)
)
)
)
正如你可以看到从输出的SimpleXML对象的结构是完全相同的XML数据格式。
第二种方法是使用simplexml_load_flie函数读取一个XML文件来完成创作,其语法格式如下。
simplexml_load_file(字符串的文件名)
这里的文件名变量是存储XML数据文件的文件名和路径。下面的代码使用simplexml_load_file函数创建一个SimpleXML对象。
复制代码代码如下所示:
< PHP
XML simplexml_load_file美元=('example。XML); / /创建一个SimpleXML对象
print_r($ XML); / / XML输出
>
在这,在example.xml存储数据是完全一样的美元以上数据,以及运行的结果都是一样的上面。
以上两种方法做同样的功能,而区别在于XML数据来源不同。如果XML数据源是在PHP脚本文件,你需要使用simplexml_load_string创造它。如果XML数据源是在一个单独的XML文件,你需要使用simplexml_load_file创造它。
2.2读取XML数据在SimpleXML对象
之前的介绍是用print_r函数读取SimpleXML对象的数据,并返回类似的阵列结构的结果。显然,这种显示方法在实际应用中是不可取的。在这里,我们将介绍在SimpleXML对象读取XML数据的几种方法。
的1.var_dump功能显示对象的详细信息
的var_dump函数可以用来显示SimpleXML对象的详细信息。与print_r函数相比,该var_dump功能显示更完整的信息,其语法如下。
无效var_dump(object1,object2…)
下面的代码使用var_dump函数输出对象的细节,在上面的例子中。
复制代码代码如下所示:
运行结果如下所示。
复制代码代码如下所示:
对象(simplexmlelement)# 1(1){ {离开} = >(2){阵列
{ 0 } >
对象(simplexmlelement)# 2(2){
{名称}
字符串(18)生产支持
{雇员}
对象(simplexmlelement)# 4(1){
{雇员
数组(2){
{ 0 } >
对象(simplexmlelement)# 5(6){
{serial_no} = >
字符串(6)100001
{名称}
字符串(5)西蒙
{年龄}
字符串(2)24
{ 生日}
字符串(10)1982-11-06
{工资}
字符串(7)5000
{红利}
字符串(7)1000
}
{ 1 } >
对象(simplexmlelement)# 6(6){
{serial_no} = >
字符串(6)100002
{名称}
字符串(6)伊莲
{年龄}
字符串(2)24
{ 生日}
字符串(10)1982-01-01
{工资}
字符串(7)6000
{红利}
字符串(7)2000
}
}
}
}
{ 1 } >
对象(simplexmlelement)# 3(2){
{名称}
字符串(14)测试中心
{雇员}
对象(simplexmlelement)# 7(1){
{雇员
对象(simplexmlelement)# 8(6){
{serial_no} = >
字符串(6)110001
{名称}
字符串(5)海伦
{年龄}
字符串(2)23
{ 生日}
字符串(10)1983-07-21
{工资}
字符串(7)5000
{红利}
字符串(7)1000
}}}}}
与前print_r输出结果进行比较,对var_dump函数的输出函数是更严格的,并在对象的每个属性的数据类型进行分析,在实际应用中,var_dump功能往往在程序调试目标检测的应用。
2。读取XML数据中的标签
类似的,操作数组类型的变量,读取XML也可以以类似的方式进行的。例如,如果你需要阅读的名称属性下的离开标签上面的XML数据,你可以使用foreach功能做它,如下面的代码
显示出来。
复制代码代码如下所示:
以美元计)
{
回声名称;
}
>
运行结果如下所示。
生产支持
测试中心
读取每个分离标记中的XML文件读/ XML / XML数据。
输出 name属性
也可以使用括号直接读取指定的XML数据标签。
复制代码代码如下所示:
< PHP
XML simplexml_load_file美元=('example。XML); / /读取XML文件
$>离开>名称{ 0 };输出节点
>
运行结果如下所示。
生产支持
所有的sublabels下一个标签,SimpleXML组件提供阅读的孩子的方法。例如,对于离开标签在上面的XML数据,它包括两个子标签:名称和员工。下面的代码第一次离开标签下实施的sublabels阅读。
复制代码代码如下所示:
< PHP
XML simplexml_load_file美元=('example。XML);
foreach($ XML ->分离->儿童)为($ / /离开)读周期下离开标签的子标签
{
var_dump(合开); / / XML数据输出标签
}
>
运行结果如下所示。
复制代码代码如下所示:
对象(simplexmlelement)# 3(1){
{ 0 } >
字符串(18)生产支持
}
对象(simplexmlelement)# 5(1){
{雇员
数组(2){
{ 0 } >
对象(simplexmlelement)# 3(6){
{serial_no} = >
字符串(6)100001
{名称}
字符串(5)西蒙
{年龄}
字符串(2)24
{ 生日}
字符串(10)1982-11-06
{工资}
字符串(7)5000
{红利}
字符串(7)1000
}
{ 1 } >
对象(simplexmlelement)# 6(6){
{serial_no} = >
字符串(6)100002
{名称}
字符串(6)伊莲
{年龄}
字符串(2)24
{ 生日}
字符串(10)1982-01-01
{工资}
字符串(7)6000
{红利}
字符串(7)2000
}
}
}
你可以看到,孩子们使用的方法后,所有的sublabels被视为一个新的XML文件。
三.基于xml数据路径的查询
SimpleXML组件提供了一个基于XML的数据路径查询的方法,XML数据的路径是整个标签的XML的根通过一个标签。这条道路使用斜杠 /分区的卷标名称。例如,对于上面的XML数据,我们需要查询的所有值在标签名称开始离开,离开,从根的员工和员工的标签。
/ / /离开离开员工/员工/的名字。SimpleXML组件使用XPath的方法来解析路径,其语法格式如下所示。
XPath(字符串路径)
路径是路径。这个方法返回一个包含要查询的值的数组。下面的代码查询上面XML数据中的所有名称标记。
复制代码代码如下所示:
< PHP
XML simplexml_load_file美元=('example。XML); / /读取XML文件
元(XML)
var_dump($结果); / /输出节点
>
运行结果如下所示。
复制代码代码如下所示:
数组(3){
{ 0 } = >对象(simplexmlelement)# 2(1){
{ 0个字符串(5)西蒙
}
{ 1 } = >对象(simplexmlelement)# 3(1){
{ 0个字符串(6)伊莲
}
{ 2 } = >对象(simplexmlelement)# 4(1){
{ 0个字符串(5)海伦
}
}
如您所见,所有的名称标签都会被查询。
2.3 xml数据修改
XML数据的修改是类似于XML数据中的标签的方法阅读方法,即通过直接修改在SimpleXML对象标签的值。下面的代码实现了一个修改的第一名sublabel离开标签在上面的XML数据。
复制代码代码如下所示:
< PHP
XML simplexml_load_file美元=('example。XML); / /读取XML
$ > >离开>名称{ 0 } =人力资源;
>
改造后,它没有对XML文件的任何影响。然而,在节目中,该SimpleXML对象读将使用一个修正值。
2.4标准化XML数据
SimpleXML也提供对XML数据,XML的标准化方法,XML的方法可以有效地重新排列的SimpleXML对象的内容与XML 1标准与字符串数据类型返回。下面的代码实现了上面的XML数据的标准化。
复制代码代码如下所示:
< PHP
XML simplexml_load_file美元=('example。XML); / /读取XML数据
回声($ XML -> XML); / /标准的XML数据
>
2.5 xml数据存储
存储XML数据的SimpleXML一个对象到XML文件的方法很简单。对XML方法的输出结果输出到一个文件。下面的代码首先修改离开名称在XML文件中,然后输出修改后的XML数据到另一个XML文件。
复制代码代码如下所示:
< PHP
XML simplexml_load_file美元=('example。XML); / /读取XML数据
newxml美元=美元-> XML XML(XML); / /标准数据
$ FP = fopen(newxml.xml,W); / /打开数据写入XML文件
fwrite($ FP,newxml美元); / /写XML数据
Fclose($ FP); / /关闭文件
>
代码运行后,你可以看到,在newxml.xml文件的XML数据如下图所示。
如您所见,XML文件的更改已保存到输出文件中。
动态创建3个XML文档
在实际应用中,动态生成的XML文档的操作是必要的。SimpleXML组件之前介绍不创建一个XML文档提供了一条途径。因此,如果你需要动态创建一个XML文档,它往往是使用DOM component.dom创造的是文档对象模型的缩写,文档对象模型,和DOM组件提供了一个树解析模式的XML文档。下面的代码使用DOM组件创建一个XML文档。
复制代码代码如下所示:
< PHP
创建一个新的DOM文档
美元=新DOMDocument(DOM);
创建根节点中的分离标记
离开=美元美元DOM -> createElement('departs);
DOM美元-> appendChild($离去);
在离开标签下创建离开孩子标签
离开=美元美元DOM -> createElement('depart);
离开美元-> appendChild($离开);
在离职标签标签下创建员工子女
员工=美元美元DOM -> createElement('employees);
离开美元-> appendChild($员工);
在员工选项卡标签下创建雇员子
员工=美元美元DOM -> createElement('employee);
为员工-> appendChild($员工);
/ /创建serial_no员工选项卡标签下的孩子
serial_no美元=美元DOM -> createElement('serial_no);
为员工-> appendChild($ serial_no);
/ /增值节点100001标签serial_no
serial_no_value美元=美元-> createTextNode(DOM '100001);
serial_no美元-> appendChild($ serial_no_value);
xml输出数据
echo DOM -> savexml();
>
输出结果如下所示。
十万零一
除了用于动态创建XML文档之外,还可以使用DOM组件读取XML文件。
读取表面XML文件。
复制代码代码如下所示:
< PHP
美元=新的DOM(DOMDocument); / /创建一个DOM对象
$ DOM ->负荷('example。XML); / /读取XML文件
根=美元美元DOM ->文档元素}; / /把数据从XML根
read_child($根); / /电话read_child函数读取根对象
功能read_child(元结)
{
美元儿童= $节点->子; / /所有子节点为节点
foreach(美元儿童达E) / /阅读每个子节点周期
{
如果(a ->节点类型= = xml_text_node) / /如果文本输出节点
{
echo $ E ->节点。;
}
如果(a ->节点类型= = xml_element_node) / /如果子节点的节点对象,调用函数
{
read_child(e);
}
}
}
>
运行结果如下所示。
复制代码代码如下所示:
引用
生产支持
十万零一
西蒙
二十四
1982-11-06
五千
一千
十万零二
伊莱恩
二十四
1982-01-01
六千
二千
测试中心
十一万零一
海伦
二十三
1983-07-21
五千
一千
上面的示例使用一种递归的方式处理XML数据,以实现XML输出数据中所有文本类型标签的功能。
4 XML应用示例-留言簿
介绍了xml的基本操作。本节将以XML消息手册为例,说明如何在实际应用中实现PHP和XML数据之间的交互。
4.1 xml文件结构设计
XML文件来存储XML数据,即在留言簿上留言。在这里,每一个消息,在XML数据主要有三个方面的内容:信息的标题,voicer的名称,该消息的内容。因此,XML文件的格式设计如下。
复制代码代码如下所示:
下面是消息的标题
这是信息
这是信息
4.2个提交页面的编写
消息页由两个页面组成:一个是允许访问者编写消息表单的HTML文件,一个是用于处理访问者输入的PHP脚本。
复制代码代码如下所示:
发布新消息
发布新消息
标题
作者
内容
用于处理用户输入PHP脚本时,其基本逻辑是首先创建DOM对象,然后读取XML文件中的XML数据,然后在XML对象中创建一个新节点并存储用户输入,将XML数据输出到原始XML文件。
复制代码代码如下所示:
< PHP
$留言=新(DOMDocument); / /创建一个新的DOM对象
$留言->负荷('db /留言。XML); / /读取XML数据
线程=美元美元留言->文档元素}; / / XML结构的根
创建新的线程节点
线程=美元美元留言-> createElement('thread);
为线程-> appendChild(合线);
在新的线程节点中创建标题标签
标题=美元美元留言-> createElement(标题);
$标题-> appendChild($留言-> createTextNode($ _post {标题}));
$线-> appendChild($标题);
在新的线程节点中创建作者标记
作者=美元美元留言-> createElement('author);
$作者-> appendChild($留言-> createTextNode($ _post { 'author ' }));
$线-> appendChild(合作者);
在新的线程节点中创建内容标记
$content = $留言-> createElement('content');
$内容-> appendChild($留言-> createTextNode($ _post { 'content' }));
$线-> appendChild(内容);
将XML数据写入文件。
$ FP = fopen(分贝/ guestbook.xml,W);
如果(fwrite($ FP,$留言-> savexml()))
成功地提交了回声消息。
其他的
回声消息提交失败;
Fclose($ FP);
>
在浏览器中运行上面的HTML文件并填写相应的消息,如图2所示。
700)这个高度= '700;边境= 0 >
图2发布一个新的消息接口
当单击提交按钮时,XML文件的内容如下所示。
您可以看到消息已存储在XML文件中。
4.3个显示页面的编写
显示页面可以很容易实现与前面介绍的SimpleXML组件,具体的实现代码如下所示。
复制代码代码如下所示:
< PHP
用来存储消息的是打开的xml文件。
$留言= simplexml_load_file('db /留言。XML);
foreach($留言->线程$Th) / /循环读取每个线程标记的XML数据
{
回声标题。;
回声作者。;
回声内容。;
回声;
}
>
查看浏览器中的运行结果,如图3所示。
700)这个高度= '700;边境= 0 >
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。