ホームページ  >  記事  >  バックエンド開発  >  、phpは名前空間を使用してxmlを解析しますか?

、phpは名前空間を使用してxmlを解析しますか?

WBOY
WBOYオリジナル
2016-06-20 12:44:371210ブラウズ

xml ファイルは axis によって生成されます:
cc2a3c708791b3c626d2b5fe40691168
83698d8eed9a0641a699f54bdcabd3ff
80a30cbea7824b2bcee3b38cbf417a62
1cf3fb991b494fbf10739f580f70804f
21ed033ec5b563655799ba55560c4bd1{ "コード": "2"、"メッセージ":"企业名称和企业注& # x518C;号匹配"}978db7c18d9425b7becbfa34d3f3d0e6
b06154bb79a9dfc207be4be5643a8796



ns1:checkQyReturnの内容を取得したいです。
PHP を使用して取得するにはどうすればよいですか?


ディスカッション (解決策) への返信

新しい SimpleXmlElement を使用して



$x = new SimpleXmlElement($str);  foreach($x->entry as $t){      echo $t->id . "<br >";      echo $t->updated . "<br />";      $namespaces = $t->getNameSpaces(true);      $gd = $t->children($namespaces['ns1']);       echo $gd->phoneNumber;  } 

を解決します。 参考: http://www.neatstudio.com/show-1549-1.shtml

はい、新しい SimpleXmlElement を使用して

を解決しました。名前空間を解析しましたが、最終的な変換 json が解析に使用されました。
$xmlstr = preg_replace('/sxmlns="(.*?)"/', ' _xmlns="${1}"', $simple);
$xmlstr = preg_replace('/<( /)?(w+):(w+)/', '<${1}${2}_${3}', $xmlstr);
$xmlstr = preg_replace('/(w+):( w+)="(.*?)"/', '${1}_${2}="${3}"', $xmlstr);
$xmlobj = simplexml_load_string($xmlstr); >
$json = json_decode(json_encode($xmlobj), true);
//print_r(json_encode($xmlobj), true)); > $str = $json['soapenv_Body']['checkQyResponse']['ns1_checkQyReturn'];


乱暴に行う方がずっと簡単です

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