我正在动态生成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”),但我找不到诀窍: - (
答案 0 :(得分:1)
使用xpath查找节点:
//item[@name='item-1']
将返回完全匹配的节点,然后您可以将其传递给removeChild调用