ホームページ  >  記事  >  バックエンド開発  >  PHP simplexmlElement は XML 名前空間実装コードを操作します_PHP チュートリアル

PHP simplexmlElement は XML 名前空間実装コードを操作します_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:33:11795ブラウズ

この質問を読んで最初に思ったのは名前空間の関係でしたが、私は名前空間を操作するために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

tru​​e

http://www.bkjia.com/PHPjc/322686.html

技術記事

この質問を読んで最初に思ったのは名前空間の関係ですが、simplexmlを使って名前空間を操作したことがなかったので、マニュアルを開いて情報を確認しましたが、問題は解決しませんでした...

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。