問題タブ [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.

0 投票する
5 に答える
4124 参照

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であることを確認する必要があります。またはそれは?

あなたが提供できる他の助けはありますか?

0 投票する
2 に答える
1167 参照

php - アイテムに名前が付けられているPHPおよびSimpleXMLを使用したXMLの解析また

Archive.orgの検索機能からデータを解析しようとしています。データは次のようになります。

完全なXMLへのリンクは次のとおりです。

PHPのSimpleXMLは、各ドキュメントにうまくアクセスし、strおよびarrというラベルの付いたアイテムを問題なく読み取ることができます。それがおかしくなりそうなのは、float、int、またはlongというラベルの付いたアイテムであり、その理由がわかりません。

私の解析コードは次のとおりです。

-> children()、-> doc、->longまたは->intを使用してみました。これらのどれもlong/int/floatアイテムを拾わないようです。原始的なものだと思い始めていますが、どうすればいいのかわかりません。

よろしくお願いします。

0 投票する
1 に答える
426 参照

php - 必要な xpath 要素のみを取得するには?

ノードのランク属性を変数に格納する xml ファイルがあります。

私は試した:

無駄に、単にArrayArrayを出力します。

これはどのように行うことができますか?

ヘンリックの提案:

どうぞ

0 投票する
3 に答える
6930 参照

php - PHP、SimpleXMLオブジェクトのjson_encode、json_decode

アプリケーションの関数は次のことを行います。

  • Snoopy を使用して Web ページをキャプチャする
  • 結果を DOMDocument にロードする
  • DOMDocument を単純な XML オブジェクトにロードする
  • XPath を実行して、必要なドキュメントのセクションを分離します
  • 結果を json_encode し、後で使用するためにデータベースに保存します。

このブロックをデータベースから復元してデコードするときに問題が発生します。オブジェクトを var_dump すると @attributes が表示されますが、それらにアクセスできるコマンドの組み合わせが見つかりません。

エラー メッセージ: 致命的なエラー: タイプ stdClass のオブジェクトを配列として使用できません

以下は私のオブジェクトのサンプルです。とりわけ、以前は機能していたものを試しました。

0 投票する
1 に答える
4030 参照

php - simplexml を使用して Facebook フィードを解析するのに問題があります

http://www.facebook.com/feeds/share_posts.php?id=207302593&viewer=207302593&key=d95b2de790&format=rss20

上記のリンクは、Facebook で共有した投稿への URL です。その URL を simplexml_load_file() にロードすると、ページ全体にエラーが表示されます。エラーを見ると、Facebook はフィードの代わりに HTML を出力しているようです。これは認証の問題だと思いましたが、Facebook からログアウトし、フィードの URL をブラウザにロードしたところ、フィードを見ることができました。ここに私が得ているエラーがあります。何か案は?ありがとう!

0 投票する
1 に答える
892 参照

curl - CURL/PHP/Apache - Vimeo への CURL/Simplexml リクエストが機能しないのはなぜですか?

以下の関数は、Vimeo サムネイルを出力する必要があります。何も返さない。テストしまし$idたが、関数に渡されており、ビデオの有効な vimeo ID です。を に置き換える$out = xxx$out = 'hello';、何も出てきません。これにより、xml 呼び出しでレコードが返されていないと思われます。Curl 7.12.1 がインストールされています。ここで他に何が問題になる可能性がありますか?

0 投票する
2 に答える
274 参照

php - SimpleXML を使用する場合、どのようにオブジェクト名を取得しますか?

フォーマットが次の場合、c はオブジェクト配列で、各反復で foreach する必要があります。

そして私は:

有効な値があっても、$key は null として表示されます。オブジェクトの名前を取得するにはどうすればよいですか?

0 投票する
1 に答える
5770 参照

php - SimpleXMLElement PHP で子のリストを取得する

xml->request->ABC で子のリストを取得するにはどうすればよいですか? ABC には DEF、ZZA、XAS、ETC が含まれている可能性があり、存在するかどうかを確認する代わりに、これらの子 (名前が必要) のリストを反復処理したいと考えています。

-編集- 注: 要素名を探しています。既知の IF 属性を返す例を見つけました。タグ/要素名を取得するにはどうすればよいですか?

0 投票する
1 に答える
866 参照

php - phpXMLおよびハッシュ/連想配列

PHPのSimpleXMLを使用して、要素のキーと子を取得したいと思います。複数ある場合は最初の要素。どうすればこれを行うことができますか?2行目は意味がないので、最初の要素の最初のキー/値をどのように取得しますか?