3

リモート API に接続して XML で情報を受け取るスクリプトを作成しています。

私が抱えている問題は、解析 domain: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');
        }
4

1 に答える 1

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からより優れた動的パーサーを使用できます。

于 2012-10-01T07:48:08.437 に答える