使用php浏览此xml结构

使用php浏览此xml结构,php,xml,simplexml,Php,Xml,Simplexml,我正在尝试循环并显示来自以下xml结构的信息 <users_list> −<users type="array"> +<user> <id>Blah</id> </user> +<user></user> +<user></user> </users> <next_link>6</next_l

我正在尝试循环并显示来自以下xml结构的信息

<users_list>
  −<users type="array">
    +<user>
      <id>Blah</id>
    </user>
    +<user></user>
    +<user></user>
  </users>
  <next_link>6</next_link>
  <prev_link>4</prev_link>
</users_list>
我试过几种变体,但看不出有任何效果。我要么在回显变量时什么也得不到,要么在我的
foreach
函数上无效的参数

print\r($xml)
应该能提供您所需的所有信息。 您可能会发现实际数组是$xml->user\u list->users->user, 此外,铸造有助于节省一些时间

foreach($xml->user_list->users->user as $value) {
  $name = (string) $value->id;
}
print\r($xml)
应该能为您提供所需的所有信息。 您可能会发现实际数组是$xml->user\u list->users->user, 此外,铸造有助于节省一些时间

foreach($xml->user_list->users->user as $value) {
  $name = (string) $value->id;
}

在PHP中进行故障排除时,
var\u dump
print\r
是您的朋友

如果希望像数组一样浏览结果,请将其强制转换为数组

$value=(数组)$value

我做了以下工作:

$xmlStr = '<users_list>
<users type="array">
<user>
<id>Blah</id>
</user>
<user></user>
<user></user>
</users>
<next_link>6</next_link>
<prev_link>4</prev_link>
</users_list>';

$xml = simplexml_load_string($xmlStr); 

foreach($xml->users->user AS $key=>$value){
    $value = (array) $value;
    $name = $value["id"];
    var_dump($name);
}   
有关simplexml的更多信息,请查看PHP帮助文档


在PHP中进行故障排除时,
var\u dump
print\r
是您的朋友

如果希望像数组一样浏览结果,请将其强制转换为数组

$value=(数组)$value

我做了以下工作:

$xmlStr = '<users_list>
<users type="array">
<user>
<id>Blah</id>
</user>
<user></user>
<user></user>
</users>
<next_link>6</next_link>
<prev_link>4</prev_link>
</users_list>';

$xml = simplexml_load_string($xmlStr); 

foreach($xml->users->user AS $key=>$value){
    $value = (array) $value;
    $name = $value["id"];
    var_dump($name);
}   
有关simplexml的更多信息,请查看PHP帮助文档


使用SimpleXML时,应始终以变量包含的根节点命名变量,这会使事情变得更简单和明显:

$users_list = simplexml_load_string(
    '<users_list>
      <users type="array">
        <user>
          <id>Blah</id>
        </user>
        <user></user>
        <user></user>
      </users>
      <next_link>6</next_link>
      <prev_link>4</prev_link>
    </users_list>'
);

foreach ($users_list->users->user as $user)
{
    echo "User ", $user->id, "\n";
}

echo "next: ", $users_list->next_link, "\n";
echo "prev: ", $users_list->prev_link, "\n";
$users\u list=simplexml\u load\u字符串(
'
废话
6.
4.
'
);
foreach($users\u list->users->user as$user)
{
回显“User”,$User->id,“\n”;
}
回显“下一步:”,$users\u list->next\u链接,“\n”;
回显“prev:”,$users\u list->prev\u link,“\n”;

使用SimpleXML时,应始终以变量包含的根节点命名变量,这会使事情变得更简单和明显:

$users_list = simplexml_load_string(
    '<users_list>
      <users type="array">
        <user>
          <id>Blah</id>
        </user>
        <user></user>
        <user></user>
      </users>
      <next_link>6</next_link>
      <prev_link>4</prev_link>
    </users_list>'
);

foreach ($users_list->users->user as $user)
{
    echo "User ", $user->id, "\n";
}

echo "next: ", $users_list->next_link, "\n";
echo "prev: ", $users_list->prev_link, "\n";
$users\u list=simplexml\u load\u字符串(
'
废话
6.
4.
'
);
foreach($users\u list->users->user as$user)
{
回显“User”,$User->id,“\n”;
}
回显“下一步:”,$users\u list->next\u链接,“\n”;
回显“prev:”,$users\u list->prev\u link,“\n”;

请注意,print_r()和var_dump()与SimpleXMLElement的配合不太好,子项不会出现,某些属性也不会出现。请注意,print_r()和var_dump()与SimpleXMLElement的配合不太好,子项不会出现,某些属性也不会出现。警告:为foreach()提供的参数无效在functions.php的第55行数组中——这就是我使用此方法时得到的结果。我发布的代码按原样工作。我猜您的变量没有命名为$users\u list。尝试
错误报告(E\u ALL)警告:为functions.php第55行数组中的foreach()提供的参数无效——这是我使用此方法时得到的结果。我发布的代码按原样工作。我猜您的变量没有命名为$users\u list。尝试
错误报告(E\u ALL)