php – 通过SimpleXMLElement循环访问属性
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 通过SimpleXMLElement循环访问属性,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1819字,纯文字阅读大概需要3分钟。
内容图文
我正在尝试使用SimpleXML检索过程数据并且遇到了很大困难.我在这里读过很多关于这个主题的帖子,它们都像我在做的那样,但是我的工作并没有.这是我得到的:
<ROOT>
<ROWS COMP_ID="165462">
<ROWS COMP_ID="165463">
</ROOT>
我的代码:
$xml = simplexml_load_file('10.xml');
foreach( $xml->ROWS as $comp_row ) {
$id = $comp_row->COMP_ID;
}
当我在调试器中逐步执行此操作时,我可以看到$id未设置为COMP_ID的字符串值,而是成为包含CLASSNAME对象的SimpleXMLElement本身.我已经尝试了许多解决此属性的变体但没有工作,包括$comp_row-> attributes() – > COMP_ID等.
我错过了什么?
解决方法:
SimpleXML是一个类似于数组的对象.备忘单:
>未带前缀的子元素作为数字索引或可遍历
>不包含前缀元素(注意,我的意思是前缀,而不是空命名空间!名称空间的SimpleXMLElement处理是一个奇怪的,可以说是破坏了.)
>第一个孩子:$sxe [0]
>带有匹配元素子集的新SimpleXMLElement:$sxe-> ROWS,$sxe-> {‘ROWS’}
>迭代孩子:foreach($sxe as $e),$sxe-> children()
>文字内容:(字符串)$sxe. SimpleXMLElement总是返回另一个SimpleXMLElement,所以如果你需要一个字符串显式转换它!
>前缀子元素:
> $sxe-> children(‘http://example.org’)返回带有元素的新SimpleXMLElement
在匹配的命名空间中,删除了名称空间,以便您可以像上一节一样使用它.
> null namespace中的属性作为键索引:
>特定属性:`$sxe [‘attribute-name’]
>所有属性:$sxe-> attributes()
> $sxe-> attributes()返回一个特殊的SimpleXMLElement,它将属性显示为子元素和属性,因此以下两项工作:
> $sxe-> attributes() – > COMP_ID
> $a = $sxe-> attributes(); $A [ ‘COMP_ID’];
>属性值:强制转换为字符串(字符串)$sxe [‘attr-name’]
>其他名称空间中的属性:
>所有属性:$sxe->属性(‘http://example.org’)
>特定属性:$sxe_attrs = $sxe-> attributes(‘http://example.org’); $sxe_attrs [ ‘ATTR-名称没有前缀’]
你想要的是:
$xml = '<ROOT><ROWS COMP_ID="165462"/><ROWS COMP_ID="165463"/></ROOT>';
$sxe = simplexml_load_string($xml);
foreach($sxe->ROWS as $row) {
$id = (string) $row['COMP_ID'];
}
内容总结
以上是互联网集市为您收集整理的php – 通过SimpleXMLElement循环访问属性全部内容,希望文章能够帮你解决php – 通过SimpleXMLElement循环访问属性所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。