SimpleXMLElement Object
(
[0] => CEM
)
这样有一个SimpleXMLElement
对象。我尝试使用$object->0
和$object->{0}
访问它。但它给出了一个php错误。我们如何在不将其更改为其他格式的情况下访问它。
答案 0 :(得分:1)
从您的print_r
输出中可能不是很明显:
SimpleXMLElement Object
(
[0] => CEM
)
这只是一个包含字符串 CEM 的XML元素,例如:
<xml>CEM</xml>
您可以通过转换为字符串来获取该值(请参阅Basic SimpleXML usageDocs):
(string) $object;
当你有一个SimpleXMLElement
对象并且你不确定它代表什么时,使用echo $object->asXML();
输出XML并分析它比单独使用print_r
更容易,因为这些元素有您需要知道的很多关于正确读取 print_r
输出的魔法。
上面的一个例子:
<?php
$object = new SimpleXMLElement('<xml>CEM</xml>');
print_r($object);
echo "\n", $object->asXML(), "\n";
echo 'Content: ', $object, "\n"; // echo does cast to string automatically
输出:
SimpleXMLElement Object
(
[0] => CEM
)
<?xml version="1.0"?>
<xml>CEM</xml>
Content: CEM
答案 1 :(得分:0)
在您的情况下,它会像您一样出现 print_r($ object)和$ object它是一个数组 所以你正在查看的不是XML对象,而是包含在print_r()
的显示对象中的数组任何方式,要访问一个simpleXML对象,你可以在这里使用{} sytax:
$xmlString = '<uploads token="vwl3u75llktsdzi">
<attachments>
<attachment myattr="attribute value">123456789</attachment>
</attachments>
</uploads>';
$xml = simplexml_load_string($xmlString);
echo "attachment attribute: " . $xml->{"attachments"}->attributes()["myattr"] " \n";
echo " uploads attribute: " . $xml->{"uploads"}->attributes()["token"] . "\n";
你可以替换&#34;附件&#34;使用$ myVar或其他东西
请记住attributes()返回一个关联数组,以便您可以使用方括号或通过array_keys()访问数据,或者执行foreach循环。
在您的具体情况下可能只是
echo $object[0]; // returns string "CEM"