我试图通过以下Feed获取状态。
<item>
<unit:leaseTerm>12 Months</unit:leaseTerm>
<unit:status><a href="xxxxx">Occupied</a></unit:status>
</item>
$feed = new SimpleXMLElement($content);
$ns = $feed->getDocNamespaces(TRUE);
$unit_ns = (string) $ns['unit'];
foreach ($feed->channel->item as $entry) {
$unit = $entry->children($unit_ns );
$unit_leaseTerm = $unit->leaseTerm;
$unit_status = $unit->status;
}
我可以得到单位:leaseTerm,因为它是纯文本。
如何从Feed中访问状态?我想得到被占领的&#39;来自节点。
在解析时是否有摆脱html标签?
由于
答案 0 :(得分:0)
我不确定这是否有效只是检查一下
$res = $feed->xpath('//unit:status');
echo (string)$res[0];
答案 1 :(得分:0)
这里有一些便宜的hax:(因为XML格式错误)
//Cast the values of the Simple XML Object into a associative array
$xmlData = get_object_vars($feed);
//Cast the values of the sub Simple XML object into an associative array
$ocVars = get_object_vars($xmlData['unit:status']);
//And voila! Using "a" index, because that seems to be the "XML" node
//contianing the value
$occupiedValue = $ocVars['a'];
答案 2 :(得分:0)
在解析时是否有摆脱html标签?
这不是HTML标记。我的意思是你把它看成一个,但从技术上讲,这只是一个XML标签。
作为此XML,具有命名空间的规则适用:
$unit->status
没有<a>
元素,因为<a>
元素位于不同的名称空间中。所以它显示为空字符串。
然而,查看默认命名空间会给你&#34; Occupied
&#34;:
$unit->status->children()[0]
这就是全部。