Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.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
Php 解析xml以获取一些值_Php_Xml_Simplexml - Fatal编程技术网

Php 解析xml以获取一些值

Php 解析xml以获取一些值,php,xml,simplexml,Php,Xml,Simplexml,这些是浏览器游戏中的玩家销售。我想保存这些销售中的一些字段。我用curl获取xml并存储在我的服务器上。然后执行以下操作: $xml_str = file_get_contents('salespage.xml'); $xml = new SimpleXMLElement($xml_str); $items = $xml->xpath('*/transfer'); print_r($items); foreach($items as $item) { echo $item['b

这些是浏览器游戏中的玩家销售。我想保存这些销售中的一些字段。我用curl获取xml并存储在我的服务器上。然后执行以下操作:

$xml_str = file_get_contents('salespage.xml');
$xml = new SimpleXMLElement($xml_str);
$items = $xml->xpath('*/transfer');

print_r($items);

foreach($items as $item) {
    echo $item['buyerTeamname'], ': ', $item['sellerTeamname'], "\n";
}
数组是空的,我似乎无法从中获得任何信息。我做错了什么?

getName()。“
”;
<?php
$xml = simplexml_load_file("test.xml");

echo $xml->getName() . "<br />";

foreach($xml->children() as $child)
  {
  echo $child->getName() . ": " . $child . "<br />";
  }
?>
foreach($xml->children()作为$child) { echo$child->getName()。“:”$child。“
”; } ?>

这就是您想要的吗?

您忘记了xpath中的斜杠:

$xml_str = file_get_contents('salespage.xml');
$xml = new SimpleXMLElement($xml_str);
$items = $xml->xpath('/*/transfer');

print_r($items);

foreach($items as $item) {
    echo $item->buyerTeamname, ': ', $item->sellerTeamname, "\n";
}

没有理由为此使用cURL或XPath。你能行

$url = 'http://www.managerleague.com/export_data.pl?data=transfers&output=xml&hide_header=0';
$transfers = new SimpleXMLElement($url, NULL, TRUE);
foreach($transfers->transfer as $transfer) {
    printf(
        "%s transfered from %s to %s\n",
        $transfer->playerName,
        $transfer->sellerTeamname,
        $transfer->buyerTeamname
    );
}

salespage.xml中是否有内容?或者您可以使用
simplexml\u load\u file()
,这比使用SimpleXMLElement构造函数更明确。此外,还提供了命名变量
$transfers
的道具,这样您就可以迭代
$transfers->transfer
,并弄清楚发生了什么。