PHP XML DOM


PHP XML DOM文档

PHP是一种脚本语言,用于创建动态Web网站。它支持XML DOM(文档对象模型)编程,可以方便地处理XML文件。本文将介绍如何使用PHP XML DOM编程,以及DOM节点,元素,属性和文本的基本操作。

基本语法

  1. 先创建一个空的DOM文档对象。
$doc = new DOMDocument();
  1. 使用load()或loadXML()方法将XML文件加载到DOM文档对象中。
$doc->load("example.xml");
// 或者
$xmlData = "<root><child/></root>";
$doc->loadXML($xmlData);
  1. 获取文档中的根元素节点,通过getElementsByTagName()方法来获取。
$root = $doc->getElementsByTagName("root")->item(0);
  1. 创建新的元素节点和文本节点,通过createElement()和createTextNode()方法实现。
$element = $doc->createElement("child");
$text = $doc->createTextNode("hello world");
  1. 将新的元素和文本节点附加到父元素上,通过appendChild()方法实现。
$element->appendChild($text);
$root->appendChild($element);
  1. 通过save()或saveXML()方法,将DOM文档对象保存为XML文件或字符串。
$doc->save("example2.xml");
// 或者
$xmlString = $doc->saveXML();

节点操作

获取节点

  1. 通过getElementById()方法获取元素节点。
$elementById = $doc->getElementById("id");
  1. 通过getElementsByTagName()方法获取元素节点列表。
$elements = $doc->getElementsByTagName("tagname");
  1. 获取父元素节点、子元素节点和兄弟元素节点,通过parentNode、childNodes和nextSibling方法实现。
$parentNode = $element->parentNode;
$childNodes = $element->childNodes;
$nextSibling = $element->nextSibling;

创建节点

  1. 创建元素节点。
$element = $doc->createElement("element");
  1. 创建文本节点。
$text = $doc->createTextNode("text");
  1. 创建属性节点。
$attr = $doc->createAttribute("attr");

修改节点

  1. 修改节点的值。
$element->nodeValue = "new value";
  1. 修改节点的属性。
$element->setAttribute("attr", "value");
  1. 添加或删除节点和属性。
$parent->appendChild($node); // 添加子节点
$parent->removeChild($node); // 删除子节点
$element->removeAttribute("attr"); // 删除属性节点

示例

下面是一个使用DOM操作XML文件的示例。

// 创建DOM文档对象
$doc = new DOMDocument();

// 加载XML文件
$doc->load("example.xml");

// 获取根元素节点
$root = $doc->getElementsByTagName("root")->item(0);

// 创建新的子元素节点和文本节点
$child = $doc->createElement("child");
$text = $doc->createTextNode("hello world");

// 将文本节点附加到子元素节点
$child->appendChild($text);

// 将子元素节点附加到根元素节点
$root->appendChild($child);

// 保存DOM文档对象到XML文件
$doc->save("example-modified.xml");

总结

PHP XML DOM是一种处理XML文件的强大工具,可以快速轻松地操作XML文件的各个节点、元素和属性。基本语法包括创建、加载、获取、修改和保存DOM文档对象。在实际编程中,还应注意DOM节点之间的层次结构,以便更好地操作和处理XML文件。