Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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并摆脱SimpleXMLElement?_Php_Xml_Laravel - Fatal编程技术网

Php 如何正确读取xml并摆脱SimpleXMLElement?

Php 如何正确读取xml并摆脱SimpleXMLElement?,php,xml,laravel,Php,Xml,Laravel,我可以在代码中读取xml输入,但输出具有SimpleXMLElement属性。当我使用echo时,结果有一个“simplexmlement”。 如何从输出中删除此术语 simplexmlement{#253▼ +0: "362932" } 代码是 $xml=simplexml_load_file("$address&league=3"); // dd($xml); $items = array(); foreach ($xml->Odds as $key => $value)

我可以在代码中读取xml输入,但输出具有SimpleXMLElement属性。当我使用echo时,结果有一个“simplexmlement”。 如何从输出中删除此术语

simplexmlement{#253▼ +0: "362932" }

代码是

$xml=simplexml_load_file("$address&league=3");
// dd($xml);
$items = array();
foreach ($xml->Odds as $key => $value)
{
    $matchid= ($value->FixtureMatch_Id);
    echo "$matchid";
xml有点像


我想从输出中删除SimpleXMLElement。

您只需将其转换为字符串即可
SimpleXMLElement
实现了几个接口和神奇的方法。例如,
Traversable
允许
foreach()
\u toString()
进行字符串转换

echo
是隐式字符串转换,因此它将只输出文本内容

下面是一个简单的XML示例:

$xml = <<<'XML'
<?xml version="1.0" encoding="utf-8"?>
<XMLSOCCER.COM>
  <Match>
    <Id>362933</Id>
  </Match>
</XMLSOCCER.COM>
XML;

$soccer = new SimpleXMLElement($xml);
foreach ($soccer->Match as $match) {
    $matchId = $match->Id;
    var_dump($matchId);
    var_dump((string)$matchId);
    echo $matchId;
}

如您所见,该属性是一个
simplexmlement
(首先
var\u dump()
)。但是它可以转换成字符串(第二个
var_dump()
),而
echo
会触发隐式转换

编辑问题并添加您正在解析的xml的示例代码,以及您希望输出的内容。我使用了'matchid'=>(string)$matchid,然后为laravel视图收集它们,它可以工作。谢谢
object(SimpleXMLElement)#5 (1) {
  [0]=>
  string(6) "362933"
}
string(6) "362933"
362933