問題タブ [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 - PHPとsimplexmlを使用してXMLからCDATAコンテンツを取得する
私は次のXML構造を持っています:
アイテムタグの1つからデータを取得したい。このタグを取得するには、次のxpathを使用します。
これは確かに次の形式の配列を返します。
しかし、実際の情報(アイテムタグの間に保存されている)はどこにありますか?私は何か間違ったことをしているに違いありませんが、それが何であるか理解できません...おそらく本当に単純なことです...助けていただければ幸いです。
php - SimpleXML を使用してゼロから XML オブジェクトを作成する
PHP の SimpleXML 関数を使用して XML オブジェクトをゼロから作成することは可能ですか? 関数リストを見ると、既存の XML 文字列をオブジェクトにインポートして操作できるようにする方法がありますが、XML オブジェクトをプログラムで最初から生成したい場合、どのような方法が最適でしょうか?
simplexml_load_string() を使用して、必要なルート文字列を渡すと、子を追加して操作できるオブジェクトを取得できることがわかりました...ただし、これは一種のハックのように思えますが、ロードする前に、実際に一部の XML を文字列にハードコーディングします。
私はDOMDocument関数を使用してそれを行いましたが、DOMが純粋なXMLドキュメントの作成に何をしなければならないかわからないため、少し混乱しています...おそらく名前が悪いだけです:-)
php - PHP サーバーの負荷を軽減するのは、SimpleXML と json_decode のどちらですか?
私は PHP で Web アプリケーションの開発を始めています。このアプリケーションが信じられないほどの人気を得て、有名になり、金持ちになることを願っています。:-)
その時が来たら、API のデータを SimpleXML で XML として解析するか、json_decode を使用するかの私の決定は、アプリのスケーラビリティーに違いをもたらす可能性があります。
これらのアプローチのどれがサーバーにとってより効率的か知っている人はいますか?
更新:基本的なテストを実行して、どちらの方法がよりパフォーマンスが高いかを確認しました。json_decode
の実行は よりわずかに速いようですsimplexml_load_string
。これは、並行プロセスのスケーラビリティなどをテストしていないため、決定的なものではありません。私の結論は、XPath 式がサポートされているため、当面は SimpleXML を使用するということです。
結果:
php - 空の文字列を持つ PHP SimpleXML::addChild - 冗長ノード
空の文字列を値として (または空白を使用して) addChild を呼び出すと、値のないノードだけを追加するのではなく、冗長な SimpleXml ノードがノード内に追加されるようです。
何が起こるかの簡単なデモを次に示します。
そして、ここに空の文字列があります:
私が現在使用している回避策はかなりひどいものです - 最終的な JSON で str_replace を実行して、!4jh5jh1uio4jh5ij14j34io5j! を置き換えています。空の文字列で。うん。おそらく、この時点での唯一の答えは、「simplexml にバグ レポートを送信する」ことです...
誰かがより良い解決策を持っていますか?
php - SimpleXML for PHP で自己終了タグをオフにしますか?
PHP の SimpleXML 拡張機能を使用して XML ドキュメントを作成し、ファイルにトークンを追加しています。
これにより、(私が知っている)自己終了または単一のタグが生成されます。
ただし、私が通信している老朽化した Web サービスは、自己終了タグ全体でつまずいているため、個別の開始タグと終了タグが必要です。
問題は、生成された XML をpreg_replaceで実行する以外に、どうすればよいかということです。
php - Suhosin を使用した PHP SimpleXML、CodeIgniter、および Apache
CodeIgniter フレームワークを使用して、PHP5 で作成しているアプリケーションがあります。Windows (Xampp を使用) と Ubuntu (標準の Apache、PHP、MySQL スタックを使用) の両方で実行しています。
XML を取得し、(simpleXML を使用して) 解析し、結果をデータベースに投稿するフォームがあります。
Windows では問題ありません。意図したとおりに動作します。
Linux の場合 - 大きな問題です。エラーが出ます。
XML を再確認しましたが、問題ありません。
大量の XML を削除しましたが、問題ないようです。
フォームから投稿される XML 文字列のサイズに関係していると思いますが、よくわかりません。繰り返しますが、Windows では問題ありませんが、Linux ではエラーになります。
フォームに投稿されるデータのサイズは最大 160k です (これは大量のテキストですが、自動化されており、最終的には約 200k になります)。
エラーは以下です。
どんな助けでも大歓迎です。
致命的なエラー: /var/www/ci/system/application/controllers/system.php:49 でメッセージ「String could not be parsed as XML」を含むキャッチされない例外「Exception」が発生しました:49 スタック トレース: #0 /var/www/ci/ system/application/controllers/system.php(49): SimpleXMLElement->__construct('') #1 [内部関数]: System->add_system() #2 /var/www/ci/system/codeigniter/CodeIgniter.php (233): call_user_func_array(Array, Array) #3 /var/www/ci/index.php(115): require_once('/var/www/ci/sys...') #4 {main} が / でスローされる49 行目の var/www/ci/system/application/controllers/system.php
49 行目は次のようになります。
$xml = new SimpleXMLElement($this->input->post('form_systemXML'));
編集 - 修正済み
問題が見つかりました。Suhosin は Ubuntu にインストールされています。ファイル /etc/php5/apache2/conf.d/suhosin.ini で、この行を有効にしsuhosin.post.max_value_length = 65000
て値を 195000 に変更しました。Apache を再起動しましたが、すべて問題ありませんでした。ポインタの人たちに感謝します。
php - SimpleXML for PHP で特定の属性を持つ子を削除する
SimpleXML でアクセスしている異なる属性を持ついくつかの同一の要素があります。
ID が「A12」の特定のセグメント要素を削除する必要があります。どうすればよいですか? セグメント要素をループして特定の要素を設定解除しようとしましたが、これは機能せず、要素が残ります。
php - PHP シンプル XML. 最後のアイテムを入手するには?
simplexml オブジェクトの最後のアイテム (または特定のアイテム) を取得するにはどうすればよいですか? ノードがいくつあるかわからないと仮定します。
元。
<obj></obj>
そして、最後のチャンク (またはその一部)を取得したいと考えています。
php - この正規表現を使用して HTML から img src を釣り上げるとエラーが返されるのはなぜですか?
HTML ファイルで最初に見つかったイメージ タグから src を取得する関数を作成しています。ここのこのスレッドの指示に従って、動作しているように見えるものを取得しました。
しかし、この関数を数分使用した後、次のようなエラーが返されるようになりました。
警告: simplexml_load_string() [0function.simplexml-load-string0]: エンティティ: 1 行目: パーサー エラー: 42 行目の path/to/script のタグ img 行 1 のデータの途中終了。
と
警告: simplexml_load_string() [0function.simplexml-load-string0]: tp://feeds.feedburner.com/~f/ChicagobusinesscomBreakingNews?i=KiStN" border="0"> 42 行目の path/to/script にあります。
私はPHPが初めてですが、正規表現がHTMLを誤って切り刻んでいるようです。どうすれば「気密性」を高めることができますか?
php - Python での PHP の SimpleXML に似たものはありますか?
PHP の SimpleXML 拡張機能と同じように、Python で XML ファイルを処理する方法はありますか?
理想的には、リスト オブジェクトから特定の xml データにアクセスできるようにしたいだけです。