問題タブ [simplexml]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - simplexml_load_file() の速度は?
マッシュアップ用に last.fm の API を介して大量のユーザー データを取得しています。リスニングデータを収集する必要があるため、これを毎週行います。
REST API と XML を介してデータを取得します。具体的にはsimplexml_load_file()
.
スクリプトはとてつもなく長くかかります。約 2,300 人のユーザーの場合、スクリプトはアーティストの名前だけを取得するのに 30 分かかります。今すぐ修正する必要があります。そうしないと、ホスティング会社が閉鎖されてしまいます。他のすべてのオプションを吸い上げました。スクリプトの速度を低下させているのは XML です。
ここで、last.fm の API が遅い (または、通知なしに呼び出しが制限されている) かどうか、または PHP の simplexml が実際にかなり遅いかどうかを把握する必要があります。
私が気づいたことの 1 つは、XML 要求が必要以上に取得することですが、API を介してそれを制限することはできません (つまり、70 ではなく 3 バンドのみに関する情報を提供してください)。しかし、「大きな」XML ファイルは約 20kb しかありません。スクリプトの速度が低下している可能性がありますか? 2300 人のユーザーごとに 20kb をオブジェクトにロードする必要がありますか?
それができるという意味がありません...おそらくlast.fmの遅いAPIであることを確認する必要があります。またはそれは?
あなたが提供できる他の助けはありますか?
php - アイテムに名前が付けられているPHPおよびSimpleXMLを使用したXMLの解析、また
Archive.orgの検索機能からデータを解析しようとしています。データは次のようになります。
PHPのSimpleXMLは、各ドキュメントにうまくアクセスし、strおよびarrというラベルの付いたアイテムを問題なく読み取ることができます。それがおかしくなりそうなのは、float、int、またはlongというラベルの付いたアイテムであり、その理由がわかりません。
私の解析コードは次のとおりです。
-> children()、-> doc、->longまたは->intを使用してみました。これらのどれもlong/int/floatアイテムを拾わないようです。原始的なものだと思い始めていますが、どうすればいいのかわかりません。
よろしくお願いします。
php - 必要な xpath 要素のみを取得するには?
ノードのランク属性を変数に格納する xml ファイルがあります。
私は試した:
無駄に、単にArrayArrayを出力します。
これはどのように行うことができますか?
ヘンリックの提案:
どうぞ
php - PHP、SimpleXMLオブジェクトのjson_encode、json_decode
アプリケーションの関数は次のことを行います。
- Snoopy を使用して Web ページをキャプチャする
- 結果を DOMDocument にロードする
- DOMDocument を単純な XML オブジェクトにロードする
- XPath を実行して、必要なドキュメントのセクションを分離します
- 結果を json_encode し、後で使用するためにデータベースに保存します。
このブロックをデータベースから復元してデコードするときに問題が発生します。オブジェクトを var_dump すると @attributes が表示されますが、それらにアクセスできるコマンドの組み合わせが見つかりません。
エラー メッセージ: 致命的なエラー: タイプ stdClass のオブジェクトを配列として使用できません
以下は私のオブジェクトのサンプルです。とりわけ、以前は機能していたものを試しました。
php - simplexml を使用して Facebook フィードを解析するのに問題があります
上記のリンクは、Facebook で共有した投稿への URL です。その URL を simplexml_load_file() にロードすると、ページ全体にエラーが表示されます。エラーを見ると、Facebook はフィードの代わりに HTML を出力しているようです。これは認証の問題だと思いましたが、Facebook からログアウトし、フィードの URL をブラウザにロードしたところ、フィードを見ることができました。ここに私が得ているエラーがあります。何か案は?ありがとう!
curl - CURL/PHP/Apache - Vimeo への CURL/Simplexml リクエストが機能しないのはなぜですか?
以下の関数は、Vimeo サムネイルを出力する必要があります。何も返さない。テストしまし$id
たが、関数に渡されており、ビデオの有効な vimeo ID です。を に置き換える$out = xxx
と
$out = 'hello';
、何も出てきません。これにより、xml 呼び出しでレコードが返されていないと思われます。Curl 7.12.1 がインストールされています。ここで他に何が問題になる可能性がありますか?
php - SimpleXML を使用する場合、どのようにオブジェクト名を取得しますか?
フォーマットが次の場合、c はオブジェクト配列で、各反復で foreach する必要があります。
そして私は:
有効な値があっても、$key は null として表示されます。オブジェクトの名前を取得するにはどうすればよいですか?
php - SimpleXMLElement PHP で子のリストを取得する
xml->request->ABC で子のリストを取得するにはどうすればよいですか? ABC には DEF、ZZA、XAS、ETC が含まれている可能性があり、存在するかどうかを確認する代わりに、これらの子 (名前が必要) のリストを反復処理したいと考えています。
-編集- 注: 要素名を探しています。既知の IF 属性を返す例を見つけました。タグ/要素名を取得するにはどうすればよいですか?
php - phpXMLおよびハッシュ/連想配列
PHPのSimpleXMLを使用して、要素のキーと子を取得したいと思います。複数ある場合は最初の要素。どうすればこれを行うことができますか?2行目は意味がないので、最初の要素の最初のキー/値をどのように取得しますか?