ホームページ バックエンド開発 PHPチュートリアル simplexml を使用してこの XML を解析する方法を教えてください。vardump は常に false です。

simplexml を使用してこの XML を解析する方法を教えてください。vardump は常に false です。

Jun 23, 2016 pm 01:52 PM
false simplexml xml 解析する

モデレーター、また助けが必要です。 。 。これは、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;
ログイン後にコピー

このコードを使用して表示します bool (false)
解決策を求める


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

$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 の値です


コメントアウトされたファイルマークはありませんが、なぜロードできないのかわかりません

スクリーンショットを撮るだけでは意味がありません!

印刷できない文字が含まれていないことをどのようにして確認できますか?

IE で表示すると、
終了タグ 'xsm' が開始タグ 'comShort' と一致しません。

<?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>
ログイン後にコピー
これでいいんじゃないの?

スクリーンショットに表示されている文字列の長さは 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)
ログイン後にコピー
ログイン後にコピー
これでいいんじゃないでしょうか?

スクリーンショットに表示されている文字列の長さは 984 バイトですが、投稿した文字列の長さはわずか 509 バイトです。
400 バイト以上はどこへ行ったのでしょうか?


残りの400バイトは長い文字列だったので半分削除しました

ありがとうございます、原因が分かりました、PHPがutf8でエンコードされていて、取得したxmlデータがgbkなので、Changing gbkをutf8に入れてください問題は解決します


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 バイト以上はどこへ行ったのでしょうか?
成功 ~~~~~~[]
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PowerPoint を使用して XML ファイルを開くことはできますか? PowerPoint を使用して XML ファイルを開くことはできますか? Feb 19, 2024 pm 09:06 PM

XML ファイルは PPT で開くことができますか? XML、Extensible Markup Language (Extensible Markup Language) は、データ交換とデータ ストレージで広く使用されている汎用マークアップ言語です。 HTML と比較して、XML はより柔軟であり、独自のタグとデータ構造を定義できるため、データの保存と交換がより便利で統一されます。 PPT (PowerPoint) は、プレゼンテーションを作成するために Microsoft によって開発されたソフトウェアです。包括的な方法を提供します。

HTTP ステータス コード 460 の意味と使用法の詳細 HTTP ステータス コード 460 の意味と使用法の詳細 Feb 18, 2024 pm 08:29 PM

HTTP ステータス コード 460 の役割とアプリケーション シナリオの詳細な分析 HTTP ステータス コードは Web 開発の非常に重要な部分であり、クライアントとサーバー間の通信ステータスを示すために使用されます。その中でも、HTTP ステータス コード 460 は比較的特殊なステータス コードであり、この記事ではその役割と適用シナリオを詳しく分析します。 HTTP ステータス コード 460 の定義 HTTP ステータス コード 460 の具体的な定義は「ClientClosedRequest」です。これは、クライアントがリクエストを閉じたことを意味します。このステータス コードは主に次のことを示すために使用されます。

iBatis と MyBatis: 比較と利点の分析 iBatis と MyBatis: 比較と利点の分析 Feb 18, 2024 pm 01:53 PM

iBatis と MyBatis: 違いと利点の分析 はじめに: Java 開発では永続性が一般的な要件であり、iBatis と MyBatis は広く使用されている 2 つの永続性フレームワークです。これらには多くの類似点がありますが、いくつかの重要な違いと利点もあります。この記事では、これら 2 つのフレームワークの機能、使用法、サンプル コードを詳細に分析することで、読者がより包括的に理解できるようにします。 1. iBatis の機能: iBatis は、SQL マッピング ファイルを使用する古い永続性フレームワークです。

Oracle エラー 3114 の詳細な説明: 迅速に解決する方法 Oracle エラー 3114 の詳細な説明: 迅速に解決する方法 Mar 08, 2024 pm 02:42 PM

Oracle エラー 3114 の詳細な説明: 迅速に解決する方法、具体的なコード例が必要です Oracle データベースの開発および管理中に、さまざまなエラーが頻繁に発生しますが、その中でもエラー 3114 は比較的一般的な問題です。エラー 3114 は通常、データベース接続に問題があることを示します。これは、ネットワーク障害、データベース サービスの停止、または不適切な接続文字列設定が原因である可能性があります。この記事では、エラー 3114 の原因とこの問題を迅速に解決する方法を詳しく説明し、特定のコードを添付します

PHPにおけるmidpointの意味と使い方の分析 PHPにおけるmidpointの意味と使い方の分析 Mar 27, 2024 pm 08:57 PM

【PHPにおけるミッドポイントの意味と使い方の分析】 PHPでは、ミッドポイント(.)は2つの文字列やオブジェクトのプロパティやメソッドを接続するためによく使われる演算子です。この記事では、PHP における中間点の意味と使用法を詳しく掘り下げ、具体的なコード例を示して説明します。 1. 文字列中間点演算子の接続 PHP での最も一般的な使用法は、2 つの文字列を接続することです。 2 つの文字列の間に . を置くと、それらをつなぎ合わせて新しい文字列を形成できます。 $string1=&qu

解析ワームホール NTT: あらゆるトークンのオープン フレームワーク 解析ワームホール NTT: あらゆるトークンのオープン フレームワーク Mar 05, 2024 pm 12:46 PM

Wormhole は、ブロックチェーンの相互運用性のリーダーであり、所有権、制御、許可のないイノベーションを優先する、回復力があり、将来性のある分散システムの作成に重点を置いています。このビジョンの基盤は、技術的専門知識、倫理原則、コミュニティの連携への取り組みであり、シンプルさ、明確さ、そして幅広いマルチチェーン ソリューションで相互運用性の状況を再定義します。ゼロ知識証明、スケーリング ソリューション、機能豊富なトークン標準の台頭により、ブロックチェーンはより強力になり、相互運用性の重要性がますます高まっています。この革新的なアプリケーション環境では、新しいガバナンス システムと実用的な機能が、ネットワーク全体の資産に前例のない機会をもたらします。プロトコル構築者は現在、この新たなマルチチェーンでどのように運用するかに取り組んでいます。

Win11の新機能分析:Microsoftアカウントへのログインをスキップする方法 Win11の新機能分析:Microsoftアカウントへのログインをスキップする方法 Mar 27, 2024 pm 05:24 PM

Win11 の新機能の分析: Microsoft アカウントへのログインをスキップする方法 Windows 11 のリリースにより、多くのユーザーは、Windows 11 がより便利で新しい機能をもたらしたことに気づきました。ただし、ユーザーによっては、自分のシステムが Microsoft アカウントに関連付けられることを好まず、この手順をスキップしたい場合があります。この記事では、ユーザーが Windows 11 で Microsoft アカウントへのログインをスキップし、よりプライベートで自律的なエクスペリエンスを実現するのに役立ついくつかの方法を紹介します。まず、一部のユーザーが Microsoft アカウントにログインすることに抵抗がある理由を理解しましょう。一方で、一部のユーザーは次のことを心配しています。

C言語による指数関数の解析とその例 C言語による指数関数の解析とその例 Feb 18, 2024 pm 03:51 PM

C 言語の指数関数の詳細な分析と例 はじめに: 指数関数は一般的な数学関数であり、C 言語で使用できる対応する指数関数ライブラリ関数があります。この記事では、関数プロトタイプ、パラメーター、戻り値などを含む C 言語での指数関数の使用法を詳細に分析し、読者が指数関数をより深く理解し使用できるように、具体的なコード例を示します。テキスト: C 言語の指数関数ライブラリ関数 math.h には、指数関数に関連する関数が多数含まれており、その中で最もよく使用される関数は exp 関数です。 exp関数のプロトタイプは以下のとおりです

See all articles