我可以在代码中读取xml输入,但输出具有SimpleXMLElement属性。当我使用echo时,结果有一个“SimpleXMLElement”。 如何从输出中删除这个术语?
SimpleXMLElement {#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";
我想从输出中消除SimpleXMLElement。
答案 0 :(得分:0)
您只需将其转换为字符串即可。 SimpleXMLElement
实现了几个接口和魔术方法。例如Traversable
允许foreach()
和__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;
}
输出:
object(SimpleXMLElement)#5 (1) {
[0]=>
string(6) "362933"
}
string(6) "362933"
362933
如您所见,该属性为SimpleXMLElement
(第一个var_dump()
)。但它可以强制转换为字符串(第二个var_dump()
),而echo
触发隐式转换。