为什么使用 ->value (php / xpath / xml query) 后会得到 null?



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

问题是我得到的结果是:

"用户": { "0": "迈克尔" }

但我需要:

"用户": "迈克尔"

我使用的代码是:

$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>值。只获取我可以保存的名称,然后保存到我的 json。但我只得到空...当我打印 id 时。我以正确的方式得到它,例如"汤姆"。我怎么能只将其保存为"汤姆"而不是"用户": { "0": "迈克尔" } ?

更新

IDs var_dump: 
string(14) "The IDS: Array" string(19) " 
ID i : " string(14) "The IDS: Array" string(19) " 
ID i : " string(14) "The IDS: Array" string(19) " 
ID i : " 
My output : Bill

字符串将值转换为(string) $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 中的每个节点都是一个对象。它有一个__toString方法将其转换为字符串。

如果你对该对象使用 print/echo:它还显示"字符串"值,而不是当前的真实状态,作为一个对象。使用print_rvar_dump正确查看它。

最新更新