【问题标题】:Deleting an XML Node within a parent删除父节点中的 XML 节点
【发布时间】:2015-01-21 16:46:22
【问题描述】:

我有一个带有根、父节点和一些内部节点的 XML 文件。如果我使用 DOM->load(myxmlfile.xml) 是否可以遍历节点并删除 imageurlnode?​​p>

我试过这个例子:

$doc = new DOMDocument;
$doc->load('myxmlfile.xml');

$book = $doc->documentElement;

// we retrieve the chapter and remove it from the book
$node = $book->getElementsByTagName('imageurl')->item(0);
$oldnode = $book->removeChild($chapter);

echo $doc->saveXML(); 

但这只会从根目录下删除项目。我的 XML 具有以下结构:

<root>
    <property>
        <imageurl></imageurl>
    </property
</root>

那么当谈到删除 imgurl 节点(因为它在根内的父节点内)时,我将如何删除它?

【问题讨论】:

  • getElementsByTagName('chapter') 您的示例文档没有元素章节。能否请您使示例代码和示例文档匹配?
  • 我正在使用 PHP
  • 现在您的示例根本不起作用 - 至少有两个错误:&lt;/property 缺少 &gt;Undefined variable: chapter ... on line 9。抱歉有点挑剔,但是....

标签: php xml


【解决方案1】:

如果你有节点,比如$chapter,只需使用它的父节点删除它

$chapter->parentNode->removeChild($chapter);

【讨论】: