为什么我在使用->;后会得到null;值(php/xpath/xml查询)?
我对xml文件进行了查询。现在我想将结果(ID)保存到json文件中 问题在于,我得到的结果是: “用户”:{“0”:“Michael”} 但我需要: “用户”:“Michael” 我使用的代码是:为什么我在使用->;后会得到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
$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];