且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

PHP domDocument删除子节点的子节点

更新时间:2023-01-26 09:13:45

处理XML数据的好方法是使用 DOM 工具。

A good approach to process XML data is to use the DOM facility.

一旦你介绍它,这很简单。例如:

It's quite easy once you get introduced to it. For example:

<?php

// load up your XML
$xml = new DOMDocument;
$xml->load('input.xml');

// Find all elements you want to replace. Since your data is really simple,
// you can do this without much ado. Otherwise you could read up on XPath.
// See http://www.php.net/manual/en/class.domxpath.php
$elements = $xml->getElementsByTagName('category');

// WARNING: $elements is a "live" list -- it's going to reflect the structure
// of the document even as we are modifying it! For this reason, it's
// important to write the loop in a way that makes it work correctly in the
// presence of such "live updates".
while($elements->length) {
    $category = $elements->item(0); 
    $name = $category->firstChild; // implied by the structure of your XML 

    // replace the category with just the name 
    $category->parentNode->replaceChild($name, $category); 
} 

// final result:
$result = $xml->saveXML();

看到它在行动

See it in action.