我正在开发一个连接到远程API并以XML格式接收信息的脚本。
我遇到的问题是我无法获得解析域:ns正确。
下面的XML:
$xml= '<?xml version="1.0" encoding="UTF-8"?>
<response xmlns:domain="http://www.eurodns.com/domain" xmlns:eurodns="http://www.eurodns.com/eurodns">
<extension>
<eurodns:domain>
<domain:ns addr="176.31.236.123">ns1.it-joan.pl</domain:ns>
<domain:ns addr="89.72.43.135">ns2.it-joan.pl</domain:ns>
</eurodns:domain>
</extension>
</response>';
$xml = new SimpleXMLElement($xml);
foreach( $xml->resData as $value )
{
$array[] = $value->children('http://www.eurodns.com/eurodns');
}
答案 0 :(得分:1)
访问命名空间项的方法就像这样
$xml= '<?xml version="1.0" encoding="UTF-8"?>
<response xmlns:domain="http://www.eurodns.com/domain" xmlns:eurodns="http://www.eurodns.com/eurodns">
<extension>
<eurodns:domain>
<domain:ns addr="176.31.236.123">ns1.it-joan.pl</domain:ns>
<domain:ns addr="89.72.43.135">ns2.it-joan.pl</domain:ns>
</eurodns:domain>
</extension>
</response>';
$xml = new SimpleXMLElement($xml);
$eurodns = $xml->extension->children('http://www.eurodns.com/eurodns');
$domain = $eurodns->children('http://www.eurodns.com/domain');
print_r($domain);
我不知道你正在使用的整个xml结构,或者你想用它做什么,所以我不能再进一步了。但是你可以从这里开始编写你的代码 SimpleXMLElement::getNamespaces用于更好的动态解析器。