DOMDocment的操作
需积分: 0 100 浏览量
更新于2012-09-16
收藏 5KB RAR 举报
**DOMDocument操作详解与XPath应用**
在Web开发中,处理XML文档时,DOMDocument是PHP的一个强大工具。它遵循了W3C的Document Object Model(DOM)标准,允许开发者以结构化的方式访问和操作XML文档。DOMDocument不仅支持创建、修改、分析XML,还能够与HTML文档交互。本文将深入探讨DOMDocument的常用操作以及XPath的用法。
### 1. DOMDocument的创建与加载
我们可以通过`new DOMDocument()`创建一个新的DOMDocument对象。如果要加载已有的XML文档,可以使用`load()`或`loadXML()`方法。例如:
```php
$xml = <<<XML
<root>
<item id="1">Item One</item>
<item id="2">Item Two</item>
</root>
XML;
$doc = new DOMDocument();
$doc->loadXML($xml);
```
### 2. 访问XML元素与属性
DOMDocument提供了丰富的API来访问和操作XML元素及属性。`getElementsByTagName()`, `getElementById()`, `getElementsByClassName()`等方法可以帮助我们找到特定的元素。例如:
```php
$item = $doc->getElementsByTagName('item')->item(0);
echo $item->nodeValue; // 输出 "Item One"
$idAttr = $item->getAttribute('id');
echo $idAttr; // 输出 "1"
```
### 3. 修改XML
DOMDocument允许动态修改XML文档。我们可以添加、删除或更改元素和属性。例如,新增一个元素:
```php
$newItem = $doc->createElement('item', 'Item Three');
$newItem->setAttribute('id', '3');
$root = $doc->documentElement;
$root->appendChild($newItem);
```
### 4. 保存与输出XML
完成对XML的修改后,可以使用`saveXML()`或`save()`方法将其保存到文件或字符串。如需输出,可以使用`saveHTML()`:
```php
$xmlString = $doc->saveXML();
echo $xmlString; // 输出整个XML文档
$doc->save('modified.xml'); // 保存到文件
```
### 5. XPath的引入
XPath是用于在XML文档中查找信息的语言。在DOMDocument中,可以使用`DOMXpath`类结合XPath表达式来快速定位节点。以下是如何使用XPath的例子:
```php
$xPath = new DOMXPath($doc);
$items = $xpath->query('//item[@id="2"]');
$item = $items->item(0);
echo $item->nodeValue; // 输出 "Item Two"
// 查找所有id属性值为偶数的item
$evenItems = $xpath->query('//item[@id mod 2 = 0]');
foreach ($evenItems as $evenItem) {
echo $evenItem->nodeValue . "\n";
}
```
XPath的强大之处在于它可以基于节点的名称、属性、文本内容等进行复杂的查询。通过熟练掌握XPath,可以更高效地处理XML数据。
总结,DOMDocument和XPath在处理XML文档时提供了强大的功能。它们使得解析、修改和查找XML内容变得简单而直观。理解并熟练运用这些技术,对于提升PHP的XML处理能力至关重要。在实际开发中,根据具体需求灵活运用DOMDocument和XPath,能够大大提高工作效率。