この質問を読んで最初に思ったのは名前空間の関係でしたが、私は名前空間を操作するためにsimplexmlを使ったことがなかったので、マニュアルを開いて情報を確認しても問題は解決せず、最終的にはGoogleを通じて問題が解決しました。
質問した友人は、http://code.google.com/intl/zh-CN/apis/contacts/docs/3.0/developers_guide_protocol.html#retrieving_without_query データ構造から取得したデータ ソースを投稿しました。おおよそ次のとおりです:
コードをコピーします コードは次のとおりです:
liz@gmail.com
<更新>2008-12- 10T10:04:15.446Z更新>
エリザベス・ベネットの連絡先
/openSearch: totalResults> 1 25 EUORAQ."'>
2008-12-10T04:45:03.331Z
2008-12-10T04:45:03.331Z
フィッツウィリアム ダーシー
< gd:fullName>/gd:fullName>
この構造は、「
456 最終的なコードは次のとおりです:
コードをコピーします
コードは次のとおりです:
$x = new SimpleXmlElement($str)
foreach($x->entry as $t); {
echo $t->id . "
";
$namespaces = $t->getNameSpaces(true);
$gd = $t->children($namespaces['gd']);
echo $gd->電話番号;
もちろん、上記のように書かなくても、次のように書くこともできます:
コードをコピー コードは次のとおりです:
$x = new SimpleXmlElement($str) ;
foreach($x->entry as $ t){
echo $t->id . "
";
//$namespaces = $t->getNameSpaces (true);
//この段落と前の段落の違いに注意してください
$gd = $t->children('http://schemas.google.com/ g/2005');
echo $gd->phoneNumber ;
}
2 番目の書き方と同じように、これは、いつか変更があった場合には、良くありません。変更する必要があります。
次のような質問が次々と出てきます:
コードをコピー コードは次のとおりです:
数分で QB を学ぶ
StartDate&gt; 02/12/lt;/event:&gt;期間&gt&lt:&lt;&lt; ;event:listStatus>PUBLIC
この非標準 XML に名前空間が定義されていない場合はどうすればよいですか?この場合、SimpleXmlElement は実際には直接解決できますが、イベント名前空間が存在しないと考えられるため、警告が報告されます。
解決策は次のとおりです:
コードをコピーします
コードは次のとおりです:
$xml = @new SimpleXmlElement($str);//エラーを抑制するには前に@を追加します。
echo "
";
print_r($xml);
現時点では、この解決策の方が優れているようです。 PHP SimpleXML関数関連情報http://www.jb51.net/w3school/php/php_ref_simplexml.htmPHP SimpleXML
http://www.jb51.net/w3school/php/php_xml_simplexml.htm
http://www.bkjia.com/PHPjc/322686.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/322686.html
技術記事この質問を読んで最初に思ったのは名前空間の関係ですが、simplexmlを使って名前空間を操作したことがなかったので、マニュアルを開いて情報を確認しましたが、問題は解決しませんでした...