Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我在使用->;后会得到null;值(php/xpath/xml查询)?_Php_Arrays_Json_Xml_Xpath - Fatal编程技术网

为什么我在使用->;后会得到null;值(php/xpath/xml查询)?

为什么我在使用->;后会得到null;值(php/xpath/xml查询)?,php,arrays,json,xml,xpath,Php,Arrays,Json,Xml,Xpath,我对xml文件进行了查询。现在我想将结果(ID)保存到json文件中 问题在于,我得到的结果是: “用户”:{“0”:“Michael”} 但我需要: “用户”:“Michael” 我使用的代码是: $ids = []; $idAttributes = $xmlfile->xpath("myquery..."); foreach ($idAttributes as $idAttribute) { $ids[] = $idAttribute[0]; } p

我对xml文件进行了查询。现在我想将结果(ID)保存到json文件中

问题在于,我得到的结果是:

“用户”:{“0”:“Michael”}

但我需要:

“用户”:“Michael”

我使用的代码是:

$ids = [];

$idAttributes = $xmlfile->xpath("myquery...");
foreach ($idAttributes as $idAttribute) {

    $ids[] = $idAttribute[0]; 
}

print_r("My output : " . $ids[0]);

$user1 = $ids[0];
$user2 = $ids[1];
$user3 = $ids[2];
我还尝试了$idAttribute->value。只获取可以保存到json中的名称。但我只得到空值。。。当我打印id时,我会以正确的方式获得它,例如“Tom”。我怎么能把它保存为“汤姆”而不是“汤姆” “用户”:{“0”:“Michael”}

更新
字符串强制转换值
(字符串)$idAttribute[0]

$ids = [];

$idAttributes = $xmlfile->xpath("myquery...");
foreach ($idAttributes as $idAttribute) {

    $ids[] = (string) $idAttribute[0]; 
}

print_r("My output : " . $ids[0]);

$user1 = $ids[0];
$user2 = $ids[1];
$user3 = $ids[2];
SimpleXML中的每个节点都是一个对象。它有一个将其转换为字符串的方法


如果对该对象使用
print
/
echo
:它还显示作为对象的“字符串”值,而不是当前真实状态。使用
print\u r
var\u dump
来正确查看它。

如果在使用
var\u dump
的for循环后使用
id
,您是否可以共享内容?@DavidWinder我现在更新了它。请看一看。打印后,我会得到账单,但保存后,它的格式如下所述:(真的不清楚我们在调试输出中应该看到什么。我唯一的问题是如何从ids[0]输出“Michael”而不是{“0”:“Michael”}。我也尝试了ids[0]['0'],但我得到了相同的结果。@deceze当我打印ids[0]时,它只打印Michael,但将其保存到格式为{“0”:“Michael”}的json中
$ids = [];

$idAttributes = $xmlfile->xpath("myquery...");
foreach ($idAttributes as $idAttribute) {

    $ids[] = (string) $idAttribute[0]; 
}

print_r("My output : " . $ids[0]);

$user1 = $ids[0];
$user2 = $ids[1];
$user3 = $ids[2];