PHP XML 教程:创建、解析、读取附带示例

什么是 XML?

XML是可扩展标记语言的缩写。

XML 用于构建、存储和传输数据,以便在不同系统之间进行交换。

XML 与 HTML 相似。

它使用开始和结束标签。

与 HTML 不同,XML 允许用户定义自己的标签。

什么是 DOM?

DOM 是文档对象模型的缩写。

它是一个跨平台、语言无关的标准,定义了如何访问和操作数据:

  • HTML
  • XHTML
  • XML

DOM XML 用于访问和操作 XML 文档。它将 XML 文档视为树形结构进行查看

XML 解析器

XML 解析器是一种将 XML 文档转换为 XML 文档对象模型 (DOM) 对象的程序。

XML DOM 对象随后可以使用 JavaScript、Python 和 PHP 等语言进行操作。

CDATA 关键字(代表 (Unparsed) Character Data,即(未解析)字符数据)用于在解析 XML 文档时忽略特殊字符,例如“<”和“>”。

为什么使用 XML?

  • SOAP 和 REST 等 Web 服务使用 XML 格式交换信息。学习 XML 是什么以及它是如何工作的,将使您在开发者中具有竞争优势,因为现代应用程序大量使用 Web 服务。
  • XML 文档可用于存储应用程序的配置设置。
  • 它允许您创建自己的自定义标签,使其更加灵活。

XML 文档示例

假设您正在开发一个应用程序,该应用程序以 XML 格式从 Web 服务获取数据。

下面是 XML 文档的示例。

<?xml version="1.0" encoding="utf-8"?>
<employees status = "ok">
        <record man_no = "101">
            <name>Joe Paul</name>
            <position>CEO</position>
        </record>
        <record man_no = "102">
            <name>Tasha Smith</name>
            <position>Finance Manager</position>
        </record>
</employees>

此处,

  • “<?xml version=”1.0″ encoding=”utf-8″?>” 指定要使用的 XML 版本和编码。
  • “<employees status = “ok”>” 是根元素。
  • “<record…>…</record>” 分别是 administration 和 sales 的子元素。

如何使用 PHP 读取 XML

现在让我们编写代码来读取 employees XML 文档并在 Web 浏览器中显示结果。 Index.php

<?php
$xml = simplexml_load_file('employees.xml');
echo '<h2>Employees Listing</h2>';
$list = $xml->record;
for ($i = 0; $i < count($list); $i++) {
    echo '<b>Man no:</b> ' . $list[$i]->attributes()->man_no . '<br>';
    echo 'Name: ' . $list[$i]->name . '<br>';
    echo 'Position: ' . $list[$i]->position . '<br><br>';
}
?>

此处,

  • “$xml = simplexml_load_file(’employees.xml’);” 使用 simplexml_load_file 函数加载文件名 employees.xml 并将内容分配给数组变量 $xml。
  • “$list = $xml->record;” 获取 record 节点的内容。
  • “for ($i = 0; $i < count(…)…” 是用于读取数值数组并输出结果的 for 循环。
  • “$list[$i]->attributes()->man_no;” 读取元素的 man_no 属性。
  • “$list[$i]->name;” 读取 name 子元素的值。
  • “$list[$i]->position;” 读取 position 子元素的值。

测试我们的应用程序

假设您将文件 index.php 保存在 phptus/xml 文件夹中,请浏览到 URL https:///phptuts/xml/index.php

 Read XML using PHP

如何使用 PHP 创建 XML 文档

接下来我们将了解如何使用 PHP 创建 XML 文档。

我们将使用上面的示例在 DOM 树图中使用。

以下代码使用 PHP 内置的 DOMDocument 类来创建 XML 文档。

<?php

	$dom = new DOMDocument();

		$dom->encoding = 'utf-8';

		$dom->xmlVersion = '1.0';

		$dom->formatOutput = true;

	$xml_file_name = 'movies_list.xml';

		$root = $dom->createElement('Movies');

		$movie_node = $dom->createElement('movie');

		$attr_movie_id = new DOMAttr('movie_id', '5467');

		$movie_node->setAttributeNode($attr_movie_id);

	$child_node_title = $dom->createElement('Title', 'The Campaign');

		$movie_node->appendChild($child_node_title);

		$child_node_year = $dom->createElement('Year', 2012);

		$movie_node->appendChild($child_node_year);

	$child_node_genre = $dom->createElement('Genre', 'The Campaign');

		$movie_node->appendChild($child_node_genre);

		$child_node_ratings = $dom->createElement('Ratings', 6.2);

		$movie_node->appendChild($child_node_ratings);

		$root->appendChild($movie_node);

		$dom->appendChild($root);

	$dom->save($xml_file_name);

	echo "$xml_file_name has been successfully created";
?>

此处,

  • “$dom = new DOMDocument();” 创建 DOMDocument 类的实例。
  • “$dom->encoding = ‘utf-8’;” 将文档编码设置为 utf-8。
  • “$dom->xmlVersion = ‘1.0’;” 指定版本号 1.0。
  • “$dom->formatOutput = true;” 确保输出格式正确。
  • “$root = $dom->createElement(‘Movies’);” 创建名为 Movies 的根节点。
  • “$attr_movie_id = new DOMAttr(‘movie_id’, ‘5467’);” 定义 Movies 节点的 movie_id 属性。
  • “$child_node_element_name = $dom->createElement(‘ElementName’, ‘ElementValue’)” 创建 Movies 节点的子节点。ElementName 指定元素的名称,例如 Title。ElementValue 设置子节点的值,例如 The Campaign。
  • “$root->appendChild($movie_node);” 将 movie_node 元素附加到根节点 Movies。
  • “$dom->appendChild($root);” 将根节点附加到 XML 文档。
  • “$dom->save($xml_file_name);” 将 XML 文件保存在 Web 服务器的根目录中。
  • “echo ‘<a href= “‘.$xml_file_name.'”>’ . $xml_file_name . ‘</a> 已成功创建’;” 创建 XML 文件的链接。

测试我们的应用程序

假设您将 create_movies_list 文件保存在 phptuts/xml 文件夹中,请浏览到 URL https:///phptuts/xml/create_movies_list.php

Create an XML document using PHP

点击 movies_list_xml 链接。

Create an XML document using PHP

摘要

  • XML 是可扩展标记语言的缩写。
  • XML 可用于在系统之间交换信息或存储应用程序的配置设置等。
  • DOM 是文档对象模型的缩写。XML DOM 将 XML 文档视为树形结构。
  • XML 解析器是一种将 XML 文档转换为类似 DOM 树形结构的文档的程序。
  • CDATA 用于在解析 XML 文档时忽略特殊字符。
  • PHP 使用 simplexml_load_file 读取 XML 文档并将结果返回为数值数组。
  • PHP DOMDocument 类用于创建 XML 文件。