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

时间:2018-12-30 09:56:40

标签: php arrays json xml xpath

我查询了xml文件。我现在想将结果(id)保存到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-> value。为了只获取可以保存到json的名称。但是我只能得到null ...当我打印id时。我以正确的方式获取它,例如“ Tom”。如何将其另存为“ Tom”而不是 “ user”:{“ 0”:“ Michael”}?

更新

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

1 个答案:

答案 0 :(得分:1)

字符串将值转换为(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正确查看。