ホームページ >バックエンド開発 >PHPチュートリアル >simplexml を使用してこの XML を解析する方法を教えてください。vardump は常に false です。
モデレーター、また助けが必要です。 。 。これは、Web ページによって返された XML データです。simplexml で読み取れない理由はわかりません。var_dump は false を示します
echo '#########################'.'</br></br>'; var_dump($xml); echo '#########################'; echo '<br>'.'<br>'.'<br>'.$xml->xsm->nickname;
echo '#########################'.'</br></br>'; var_dump(simplexml_load_string($xml); echo '#########################'; echo '<br>'.'<br>'.'<br>'.$xml->xsm->nickname;
$xml = preg_replace('/!|--/', '', $xml);var_dump(simplexml_load_string($xml));
$xml = preg_replace('/!|--/', '', $xml);var_dump(simplexml_load_string($xml));
//$xml='<!--?xml version="1.0" encoding="gbk"?-->'; $xml = preg_replace('/!--\?|--/','', $xml); var_dump($xml);これを試してみましたが、一行でできます正しく一致しますが、このコードでは無効です。 Web 要素ビューアでは、戻り値にまだコメント文字が含まれていることがわかります
$xml = preg_replace('/!|--/', '', $xml);var_dump(simplexml_load_string($xml));
XML ファイル タグの行を追加するために文字列演算子を使用しましたが、simplexml_load_string を使用しても失敗しました
では、なぜ賢くなろうとしているのですか
それから、なぜあなたはそんなに賢くなければなりません
ダンプするには、simplexml の読み込みステートメントを削除する必要があります
スクリーンショットを撮るだけでは役に立ちません。
印刷できない文字が含まれていないことをどのようにして確認できますか?
$xml = '<xml version="1.0" encoding="gbk"?>'.$xml; var_dump(simplexml_load_string($xml));これは fwrite を使用して書いた $xml の値です
コメントアウトされたファイルマークはありませんが、なぜロードできないのかわかりません
スクリーンショットを撮るだけでは意味がありません!
印刷できない文字が含まれていないことをどのようにして確認できますか?
<?xml version="1.0" encoding="gbk"?><xsm code="0000" msg="验证成功abc" trans_time="20140808162708"><userId>114</userId><nickName>wedc</nickName><userType>2</userType><comId>116</comId><saledptId>11601</saledptId><refId>1062014</refId><comName></comName><domainUrl>v=2014080600</domainUrl><comType>02</comType><comShort></comShort><parentComId>11620001</parentComId><expirationTime>1407488228735</expirationTime><planText>10116226011162288228735</planText><signatureValue>c6959b4eacf7b2f</signatureValue></xsm>これでいいんじゃないの?
印刷できない文字が含まれていないことをどのようにして確認できますか?
モデレーターさん、原因は中国語が含まれているため読み込めないことですが、どうすれば解決できますか?自分のデータではないので変更できません
SimpleXMLElement Object( [@attributes] => Array ( [code] => 0000 [msg] => 验证成功abc [trans_time] => 20140808162708 ) [userId] => 114 [nickName] => wedc [userType] => 2 [comId] => 116 [saledptId] => 11601 [refId] => 1062014 [comName] => SimpleXMLElement Object ( ) [domainUrl] => v=2014080600 [comType] => 02 [comShort] => SimpleXMLElement Object ( ) [parentComId] => 11620001 [expirationTime] => 1407488228735 [planText] => 10116226011162288228735 [signatureValue] => c6959b4eacf7b2f)これでいいんじゃないでしょうか?
スクリーンショットに表示されている文字列の長さは 984 バイトですが、投稿した文字列の長さはわずか 509 バイトです。
400 バイト以上はどこへ行ったのでしょうか?
SimpleXMLElement Object( [@attributes] => Array ( [code] => 0000 [msg] => 验证成功abc [trans_time] => 20140808162708 ) [userId] => 114 [nickName] => wedc [userType] => 2 [comId] => 116 [saledptId] => 11601 [refId] => 1062014 [comName] => SimpleXMLElement Object ( ) [domainUrl] => v=2014080600 [comType] => 02 [comShort] => SimpleXMLElement Object ( ) [parentComId] => 11620001 [expirationTime] => 1407488228735 [planText] => 10116226011162288228735 [signatureValue] => c6959b4eacf7b2f)これは不可能ですか?