Php SimpleXMLElement空对象
我试图使用XmlReader解析xml文件,但尽管出于某种原因,我从(commission)节点的xml文件中得到了一个返回,但我也得到了一个返回的空SimpleXMLElement对象。我不知道这是与while循环、switch有关,还是与解析设置中遗漏的内容有关 这是我试图读取的xml文件,您可以看到,只返回了1个结果:Php SimpleXMLElement空对象,php,xml,parsing,Php,Xml,Parsing,我试图使用XmlReader解析xml文件,但尽管出于某种原因,我从(commission)节点的xml文件中得到了一个返回,但我也得到了一个返回的空SimpleXMLElement对象。我不知道这是与while循环、switch有关,还是与解析设置中遗漏的内容有关 这是我试图读取的xml文件,您可以看到,只返回了1个结果: <?xml version="1.0" encoding="UTF-8"?> <cj-api> <commissions total-
<?xml version="1.0" encoding="UTF-8"?>
<cj-api>
<commissions total-matched="1">
<commission>
<action-status>
new
</action-status>
<action-type>
lead
</action-type>
<aid>
10730981
</aid>
<commission-id>
1021015513
</commission-id>
<country>
</country>
<event-date>
2010-05-08T08:08:55-0700
</event-date>
<locking-date>
2010-06-10
</locking-date>
<order-id>
345007
</order-id>
<original>
true
</original>
<original-action-id>
787692438
</original-action-id>
<posting-date>
2010-05-08T10:01:22-0700
</posting-date>
<website-id>
3201921
</website-id>
<cid>
2815954
</cid>
<advertiser-name>
SPS EurosportBET
</advertiser-name>
<commission-amount>
0
</commission-amount>
<order-discount>
0
</order-discount>
<sid>
0
</sid>
<sale-amount>
0
</sale-amount>
</commission>
</commissions>
</cj-api>
为什么它返回第二个对象:simplexmlement对象(),我需要做什么来纠正它?谢谢。您在打开和关闭标记时两次点击循环。你需要检查节点类型,比如
if ($xml->name == 'commission' && $xml->nodeType == XMLReader::ELEMENT) {
// Process the node
}
我不知道混合使用XMLReader、DOM和SimpleXML想要实现什么。为什么不直接使用SimpleXML,比如
$xml = simplexml_laod_file($file);
$commission = $xml->commissions[0]->commission[0];
$aid = $commission->{'aid'};
print_r($aid);
是的,该脚本来自另一个来源,基本上是说xmlreader更适合于大型提要,它使用simplexml处理少量的单个元素。谢谢,现在它可以正常工作了。
if ($xml->name == 'commission' && $xml->nodeType == XMLReader::ELEMENT) {
// Process the node
}
$xml = simplexml_laod_file($file);
$commission = $xml->commissions[0]->commission[0];
$aid = $commission->{'aid'};
print_r($aid);