問題タブ [xml-simple]
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.
xml - XML ドキュメント階層のマージ
バックグラウンド
XML ファイルを構成および設定情報の入力として使用する Perl アプリケーションを設計しています。ドキュメントの階層があり、グローバル データがよりローカルな情報によって上書きされます。
私のプログラムは、より一般的なファイルへのパスを含む最もローカルな設定ファイルで呼び出されます。一部のローカル設定は絶対的であり、これらはプログラムでハードコードされます。
初期化タスクは、最上位レベルから呼び出しの設定を取得し、それらを読み取ってから各レベルに進み、それらを単一の XML ドキュメントとしてマージ/結合することです。
サンプルデータ
Global_layouts_100.xml
Global_properties_100.xml
Global_70.xml
local.xml
ここで、プログラムを開始する local.xml と、処理する引数として CUS が与えられる場合、この XML (または同等の perl データ構造) を確認したいと思います。
そして、プログラムが開始する local.xml と、処理する引数として XYZ が与えられる場合、私はこの XML (または同等の perl データ構造) を見たいと思います:
質問
これらの XML ドキュメントをマージする最も効率的な方法は何ですか?
によって返されたデータ構造を使用して自分で実行できますかXML::Simple
、それとも他の XML ツールを使用する必要がありますか?
私の質問が十分に明確で、サンプル XML データを必要としないことを願っています。何かを見る必要がある場合は、サンプルのものを投稿できます。
簡単に言えば、個々の XML ドキュメントの階層をマージする最善の方法は何かということです。
xml - XML データを解析し、XML::Simple を使用して新しい要素を追加します
と を使用XML::Simple
してXML::Dumper
います。前者のモジュールに関する問題は十分承知しています。別のライブラリを使用できる場合は、そうします。
私が達成したいのは、XML をロードし、それに行を追加することです。これは、スクリプトを実行する前の XML 構造です。
スクリプト、または私がコーディングしようとしていたものは、この XML をファイルからロードし、<param>
要素を に追加する必要があります<appearence>
。私はこのコードを使用してそれを試みました:
残念ながら、出力は次のとおりです。
<person>
元のタグを失うだけでなく<opt>
、その文字列は、既存の要素HASH
であると想定しているものを置き換えます。<param>
のドキュメントを読みましたXML::Simple
が、これを防ぐためにどの引数を使用する必要があるかわかりません。
xml - perlでxml :: simpleを使用してxmlオブジェクトのトップレベルを参照する
これを理解しようとして、頭を壁にぶつけていました。最終的にこれらのゲーム ファイルのさまざまなコンポーネントをリンクするスクリプトをまとめようとしています (wiki のように)。これは、逆参照を正しく行わないという単純な問題だと確信していますが、私の人生ではそれを理解することはできません。
XML のサンプルを次に示します。
実際のプログラムはこちら
pistol
foreach から実際のアイテム名 (この場合は ) にアクセスする方法や、プロパティまたはプロパティのプロパティに到達する方法など、いくつかのことを実際に探しています。ハッシュと配列を台無しにしているか、アイテムを正しく設定していないだけだと確信していますが、それを理解するのに十分なほどxmlデータに近い例は見つかりませんでした。
(データダンパーはこれをくれます)
エラー:
もうエラーはありません。
perl - 無効な xml 文字を含む文字列を含む XMLin
一部のメッセージを抽出するために、perl スクリプトの 1 つで XML::Simple を使用しています。問題は、次のエラーが発生することです。
「&」などの無効な文字を使用XMLin( $msg )
している場合$msg
正規表現を使用してそれらを削除できることは知っていますが、そうしたくありません。& を に置き換えて使用できます&
。
を使用するときに、この種の文字列内の無効な文字を perl で処理する簡単な方法はありますXMLin( $msg )
か?
の例は次の$msg
ようになります。<Error>Exception Invalid address (&F5F5F5F5)</Error>
xml - Perl XML::Simple:コンテンツのないxsi:nil-ElementsのSuppressEmpty?
Perl の XML::Simple と null 可能な要素に苦労しています。
だから、これは私のXMLの例です:
これをXMLinとSuppressEmpty => 1で読むと、 EmptyOneには空の文字列が返されますが、NullableElementにはxsi:nil="true"のハッシュが返されます。私の質問は、xsi:nil-Content を無視して空の文字列または undef を返すように XMLin に指示するにはどうすればよいですか? これは XML::Simple でも可能ですか、それとも Lib::XML に切り替える必要がありますか?
結果を確認するコードは次のとおりです。
php - topic->icon_id で属性を取得
トピックアイコンをxmlで表示しようとしています。
正しいアイコンIDからアイコンを取得するにはどうすればよいですか。現在、彼は常に id 0 をロードしています。
お手伝いありがとう。
提案された例を試してみましたが、運がありませんでした。
xml:
php: