0

我正在尝试将从表单接收到的一些数据添加到已经存在的 XML 文件中。我在 PHP 中使用 DOMDocument 将数据添加到文件中......

虽然我在添加数据方面有些成功,但它添加到了错误的元素中。

现在我知道只有一个具有特定名称的元素,这将是根元素。我也知道只有一个元素的名称将包含其他数据。

这些元素没有 ID,我想通过getElementsByTagName使用 DOMDocument 在 PHP 中读取它们。

因此,如果我知道整个文件中只有一个具有该名称的元素,那么我可以执行以下操作:

$element = $dom->getElementByTagName('ElementName'); $element[0];

我的意思是我可以只选择数组中的第一个元素吗?我该怎么做?因为上面的代码不起作用。

4

2 回答 2

3

TagName 是指 html 或 xml 标记的名称。如果只有一个,您应该能够执行以下操作:

$element = $dom->getElementByTagName('ElementName')->item(0);

然而,听起来你真正想要的东西可以用 xpath 来完成:

$xpath = new DOMXPath($dom);
$elements = $xpath->query("//*[@name='ElementName']");

foreach ($elements as $node)
{
    $element[] = $node;
}

现在 $element[0] 应该是您要查找的元素。

于 2011-12-17T14:59:04.747 回答
2

from 的返回值getElementsByTagName()是一个DOMNodeList对象,它不是一个数组。通过该item()方法访问列表中的各个项目。

$element = $dom->getElementByTagName('ElementName')->item(0);

看:

于 2011-12-17T15:03:23.733 回答