我想知道如何在不使用attrubites()
的情况下从数组中读取属性。下面是我的xml的一部分:
<?xml version="1.0" encoding="UTF-8"?>
<offer file_format="IOF" version="1.0" generated="2017-12-27 11:04:38" >
<products currency="PLN">
<product id="2055">
<price gross="709" net="577"/>
</product>
下面是我的代码,它读取所有属性。我想删除$product->attributes()->id
,因为它返回一个我需要的数组值&#34; clean&#34;使用json_decode(json_encode($id), TRUE);
然后$xmlArray[0];
来读取值。
$xmlUrl = 'myfile.xml';
$xmlVar = simplexml_load_string(file_get_contents($xmlUrl));
foreach ($xmlVar AS $products) {
foreach ($products AS $product) {
$id = $product->attributes()->id;
$xmlArray = json_decode(json_encode($id), TRUE);
$withOutId = $xmlArray[0];
}
}
我想通过移动
将此数组转换为字符串json_decode(json_encode($id), TRUE);
在开始时但我不知道如何阅读属性。谢谢你的帮助。
亲切的问候
答案 0 :(得分:0)
该行
$id = $product->attributes()->id;
不返回数组,它返回一个SimpleXMLElement
对象。没有必要通过json_encode/decode
运行它,你只需要将其转换为基本的PHP类型:
$id = (int) $product->attributes()->id;
var_dump($id); // int(2055)
另一种更简洁的访问属性的方法是使用数组样式语法:
$id = (int) $product['id'];
var_dump($id); // int(2055)