PHP XML DOMDocument按属性值删除子项?

时间:2011-10-23 19:52:43

标签: xml domdocument

我正在动态生成XML文件,并希望按属性名称删除某些子项。

例如: data.xml中

<root>
<item name="item-1">
  <sub1>some text</sub1>
  <sub2>etc.</sub2>
</item>
<item name="item-2">
  <sub1>some different text</sub1>
  <sub2>etc.</sub2>
</item>
</root>

现在我试图通过属性名称删除元素。 (即“第1项”)

这就是我的XML Doc和我的元素的设置方式:

$doc = new DOMDocument('1.0', 'utf-8');
$root = $doc->createElement("root");
$doc->appendChild($root);

// Foreach... {

$item = $doc->createElement("item");
$item->setAttributeNode(new DOMAttr('name', 'item-'.$i));
$root->appendChild($item);

}

$doc->save("Data.xml")

我喜欢这样的东西:$ doc-&gt; removeElementByAttributeValue(“item-1”),但我找不到诀窍: - (

1 个答案:

答案 0 :(得分:1)

使用xpath查找节点:

//item[@name='item-1']

将返回完全匹配的节点,然后您可以将其传递给removeChild调用