首页博客网络编程
要使 PHP 解析 XML 文档,您需要使用解析器。有多种方法可以使 PHP 解析 XML 数据,每种方法都更适合不同的情况。
SimpleXML 设计用于管理和从 XML 文件中检索数据。应用后,SimpleXML 将组织 XML 文档的内容,以便您可以检索有关不同元素及其属性的信息。您甚至可以向元素添加新的子元素并对其进行计数。
顾名思义,PHP SimpleXML最适合具有简单结构的小型和XML文件。使用大型文档可能会破坏其性能。但是,如果要解析的文件很小,则 SimpleXML 将帮助您使用比其他解析器更少的代码行来执行此操作。
PHP SimpleXML 扩展允许您访问和使用 XML 数据。
此解析器基于树,提供了一种获取特定元素、属性或文本内容名称的有效方法。但是,您必须了解正在使用的 XML 文档的布局或结构。
使用简单 XML,您可以将用 PHP XML 编写的文档转换为数组或对象。
它可以在任何安装了 PHP 的服务器上使用。
每当我们的工作需要PHP从字符串中读取XML文档数据时,我们使用一个名为.simplexml_load_string()
假设我们有一个包含 XML 数据的变量。下面的代码示例演示它最初声明的外观:$my_data
例复制
$my_data = "<?xml version='1.0' encoding='UTF-8'?><note><to>You</to><from>Me</from><heading>The Game</heading><body>You lost it.</body></note>";
现在,在下面的示例中,用于PHP直接从前面提到的变量中读取XML数据:simplexml_load_string()
例复制
<?php $xml_data = "<?xml version='1.0' encoding='UTF-8'?> <note> <to>You</to> <from>Me</from> <heading>The Game</heading> <body>You lost it.</body> </note>"; $xml = simplexml_load_string($xml_data) or die('Failed to create object'); print_r($xml); ?>
以下是我们在 XML 中得到的输出:
例复制
SimpleXMLElement Object ( [to] => You [from] => Me [heading] => The Game [body] => You lost it. )
要捕获所有错误,然后在加载 PHP XML 文件时检查它们,您可以使用 libxml 函数。查看下面的代码示例。您可以看到我们正在尝试加载损坏的 XML:
例复制
<?php libxml_use_internal_errors(true); $my_data = "<?xml version='1.0' encoding='UTF-8'?> <document> <to>You</wrong> <from>Me</wrong> <heading>The Game</wrong> <body>You lost it</wrong> </document>"; $xml = simplexml_load_string($my_data); if ($xml === false) { echo "Failed to load XML: "; foreach(libxml_get_errors() as $error) { echo "<br>", $error->message; } } else { print_r($xml); }?>
现在,这是我们在这种情况下将在 XML 中获得的输出:
例复制
Failed loading XML: Opening and ending tag mismatch: to line 3 and wrong Opening and ending tag mismatch: from line 4 and wrong Opening and ending tag mismatch: heading line 5 and wrong Opening and ending tag mismatch: body line 6 and wrong
通过使用 ,可以使 PHP 从文件中解析 XML 数据。假设我们正在使用一个简单地称为file.xml的XML文档。在下面的示例中,您可以查看其内容:simplexml_load_file()
例复制
<?xml version="1.0" encoding="UTF-8"?><note> <to>You</to> <from>Me</from> <heading>The Game</heading> <body>You lost it.</body></note>
现在,让我们看看如何使用从 XML 文档中读取数据:simplexml_load_string()
例复制
<?php $xml = simplexml_load_file("file.xml") or die("Failed to create object"); print_r($xml); ?>
这是我们显示的 SimpleXMLElement:
例复制
SimpleXMLElement Object ( [to] => You [from] => Me [heading] => The Game [body] => You lost it. )
SimpleXML是一个非常方便的选择,因为它从版本5开始就内置在PHP中,并且在所有PHP支持服务器中都可用。
它是一个基于树的解析器。因此,您需要了解要分析的文档的结构。XML 文档中的元素被归类为 SimpleXMLElement。
SimpleXML允许您将XML文件视为可用的数据结构:您可以轻松获取某些内容,属性或元素名称。基本上,它将PHP XML转换为数组。
与 Expat 或 DOM 解析器相比,它需要更少的代码行来正确解析 PHP XML 数据。
声明提示:若要转载请务必保留原文链接,申明来源,谢谢合作!
广告位
广告位