2016-07-01 24 views
0

ストリームサービス経由でXMLを返すEPP登録モジュールが忙しいです。simplexml_load_string関数がPHPでXMLファイルをロードしていません

XMLは正常に返されますが、データをオブジェクトとして使用できるように、PHPのsimple_xml_load_stringまたはnew SimpleXMLElementを使用してXMLを正しく読み込むための読み込みができません。

私はasXML()を使用してXMLを返すことができるので、XMLがロードされているように見えますが、オブジェクト内の値にアクセスできません。オブジェクトのprint_r()も空のオブジェクトを返します(これが正しいと理解しています)。ここで

は、ログイン結果のサンプルです:私はへのアクセスを得るために必要なもの

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<epp:epp xmlns:epp="urn:ietf:params:xml:ns:epp-1.0"> 
    <epp:response> 
    <epp:result code="1000"> 
     <epp:msg>Access granted</epp:msg> 
    </epp:result> 
    <epp:trID> 
     <epp:clTRID>ABC-123456</epp:clTRID> 
     <epp:svTRID>OTE-EPP-155A695A3C9-717E</epp:svTRID> 
    </epp:trID> 
    </epp:response> 
</epp:epp> 

は、上記の結果コードです。

// Note that the $var property contains the XML exactly as it is above. 
$result = simplexml_load_string($var); 
echo $result->response->msg; // Nothing 
echo $result->asXML(); // Returns the XML correctly. 
$result = new SimpleXMLElement($var); 
print_r($result); // Returns an empty object. 
echo $result->response->msg; // Nothing 
echo $result->toXML(); // Returns the XML correctly. 

任意のアイデアをいただければ幸いです。ここ

は、私が試してみましたサンプルPHPです。マニュアルsimplexml_load_stringによると

答えて

1

には、以下のパラメータがあります。そのため、私はあなたがこの方法であなたのXMLを読み込むことができると信じて

SimpleXMLElement simplexml_load_string (string $data [, string $class_name = "SimpleXMLElement" [, int $options = 0 [, string $ns = "" [, bool $is_prefix = false ]]]]) 

simplexml_load_string($var, "SimpleXMLElement", 0, "epp", true); 

私はこれがあなたのために働く願っています。

+0

優秀!ありがとう、魅力のような作品:)名前空間が欠落していると私は正しいですか? – mauzilla

+0

まさに、タグの先頭に名前空間があることをクラスに伝える必要があります;) –

関連する問題