如何使用SimpleXml引用名称为'element-name'的元素

时间:2009-10-13 02:35:29

标签: php xml simplexml

如何解析这样的XML文档:

<feed>
  <item>
    <element-name>Element value</element-name>
  </item>
</feed>

如果我尝试以下操作,则无效:

$xmlObject = simplexml_load_string($xmlString);

foreach($xmlObject->item as $item) {
    $elementName= $item->element-name; // Obviously doesn't work.
}

我试过了:

$item->element_name;
$item->elementname;
$item->elementName;

没有工作。如何访问此元素的值?

2 个答案:

答案 0 :(得分:1)

您可以使用以下内容:

$name = "element-name";
$item->{$name};

答案 1 :(得分:0)

当您尝试使用短划线/连字符(simplexml_load_string)传递元素节点时,

-不喜欢它。

这里有两个选择。

使用大括号({})封装元素名称:

$elementName = $item->{'element-name'};

或者将其变成可以替换的变量:

$elementNameNode = 'element-name';
$elementName = $item->$elementNameNode;