【问题标题】:XML data gives error while trying to fetchXML 数据在尝试获取时出错
【发布时间】:2013-06-05 13:27:35
【问题描述】:

我有一个类似的 XML

print_r( $eachFeature->unit->attributes() ); 

wchich 给出输出

SimpleXMLElement Object ( [@attributes] => Array ( [id] => m2 [size] => 76 ) )  

我用这段代码来提取

$eachUnitSize = (string) $eachFeature->unit->attributes()->size;

报错

main(): Node no longer exists 

我在 Yii 框架中做这个。 如果这是错误的,那我该怎么办.. 帮助对我来说很重要.. 谢谢

【问题讨论】:

  • 只是检查一下,出错的那一行是在成功输出print_r 的那一行旁边,还是中间有任何处理?

标签: xml xml-parsing yii simplexml


【解决方案1】:

SimpleXML 元素中的属性可以像数组一样访问:

$el = $eachFeature->unit->attributes();
$eachUnitSize = (string)$el['size'];

【讨论】:

  • 实际上,它可以比这更简单——(string)$eachFeature->unit['size'] 也是一样的。不过,这 3 种方法是等效的,因此无法解释遇到的错误。
  • @IMSoP 我需要先检查它是否存在.. 那我该怎么办?
  • @SubhraSekharMukhopadhyay 检查哪个节点是否存在?一般答案是isset($some_simplexml_node),例如isset($eachFeature->unit)
猜你喜欢
  • 1970-01-01
  • 2020-07-25
  • 1970-01-01
  • 2020-08-10
  • 1970-01-01
  • 2021-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多