【问题标题】:How can I reference elements with names like 'element-name' using SimpleXml如何使用 SimpleXml 引用名称为“元素名称”的元素
【发布时间】:2009-10-13 02:35:29
【问题描述】:

如何解析这样的 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;

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

【问题讨论】:

    标签: php xml simplexml


    【解决方案1】:

    你可以这样使用:

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

    【讨论】:

      【解决方案2】:

      simplexml_load_string 不喜欢它,当您尝试使用破折号/连字符 (-) 传递元素节点时。

      这里有两种选择。

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

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

      或者把它变成一个你可以替换掉的变量:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-11-01
        • 1970-01-01
        • 2011-10-26
        • 2011-08-22
        • 1970-01-01
        • 2017-07-16
        • 1970-01-01
        • 2015-12-18
        相关资源
        最近更新 更多