PHP XML DOM getElementById

PHP XML DOM getElementById,php,xml,dom,getelementbyid,Php,Xml,Dom,Getelementbyid,我需要从xml文件中选择一个标记,并在此标记之前插入另一个标记。我是用DOM中的方法insertBefore来实现这一点的,但问题是,如果我想在通过方法getElementById添加另一个标记之前选择标记,它就不起作用了。 它写的是“使用非对象”。以下是标记的外观: <item id="Flow_0" href="Flow_0.html" media-type="application/xhtml+xml"/> 在某个地方我读到它一定是这样的,但我不能编辑所有文件: <

我需要从xml文件中选择一个标记,并在此标记之前插入另一个标记。我是用DOM中的方法
insertBefore
来实现这一点的,但问题是,如果我想在通过方法
getElementById
添加另一个标记之前选择标记,它就不起作用了。
它写的是“使用非对象”。以下是标记的外观:

<item id="Flow_0" href="Flow_0.html" media-type="application/xhtml+xml"/>

在某个地方我读到它一定是这样的,但我不能编辑所有文件:

<item xml:id="Flow_0" href="Flow_0.html" media-type="application/xhtml+xml"/>


你知道怎么做吗?

一个常见的解决方法是使用XPath获取元素

$item = $xpath->query('//item[@id="Flow_0"]')->item(0);
(相关)解释了为什么
getElementById
不起作用。简而言之:当没有DTD或模式时,它不是ID意义上的ID,而是一个属性。