我需要此xml文件的文本以在电报中使用它,如果xml来时没有“ id”和“ name”,我可以做到,但不能使用标签
<root>
<origen>...</origen>
<trend>
<zone id="809" name="AGi">
<subzone id="809" name="AGi">
<text>
I want this text.
</text>
</subzone>
</zone>
</trend>
function getIdTEXT($chatId){
$context = stream_context_create(array('http' => array('header' => 'Accept: application/xml')));
$url = "http://www.thexmlfile/MM.xml";
$xmlstring = file_get_contents($url, false, $context);
$xml = simplexml_load_string($xmlstring, "SimpleXMLElement", LIBXML_NOCDATA);
$json = json_encode($xml);
$array = json_decode($json, TRUE);
$info = "information: ".$array['trend']['zona id="809" nama="AGi"']['subzone id="809" nombre="AGi"']['text'];
sendMessage($chatId, $info);
}
答案 0 :(得分:2)
您可以使用form.address
来查询所需的确切节点:
XPath
答案 1 :(得分:1)
您不必将SimpleXML对象转换为数组即可从中访问值,只需像对象变量一样访问它们即可:
$xml = simplexml_load_string($xmlstring, "SimpleXMLElement", LIBXML_NOCDATA);
echo $xml->trend->zone->subzone->text;
输出:
I want this text.
答案 2 :(得分:0)
在xml中为“ zone”,但在php中为“ zona”。 您无需在数组键中添加id和name属性,只需将标签名称放入即可。
$info = "information: ".$array['trend']['zone']['subzone']['text'];