問題タブ [xml-libxml]

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 投票する
2 に答える
1509 参照

xml - Perl XML :: LibXML textContent

xmlコードからノードのタグを保持する方法はありますか?問題の説明は次のようになります。xml入力があり、入力を照会し、照会された項目のxml出力を取得したい。

//pets/dogPerlプログラムでアクセスすると、出力は次のようになります。

textContentタグを保持するためのパラメータを関数に与える方法はありますか?これは、ノードをハッシュに入れて出力するサイクルコードのブロックです。

子供のタグを保持するには?このような出力を得るには:

回答ありがとうございます。

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

perl - XML::LibXML を使用して Perl で XML タグの内容を抽出する

次の XML ファイルがあります。

以下のコードを使用して、コンテンツ「ヨーロッパ人」を抽出できます。XML::LibXML を使用してタグから「nn」を抽出する方法はありますか?

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

perl - XML::LibXML を使用して、CableLabs 1.0 XML ファイルの特定の部分を検索して置換する

を試してみXML Simpleましたが、XML をハッシュに読み込むだけなので、DTD に対して実行すると出力が役に立ちません。難しい方法でそれを学びました。

そこで私は を採用XML::LibXMLしました。おもしろいことに、 で達成するのが最も難しい要件がXML::Simple最も簡単でした。ただし、 で行うのが簡単なことのいくつかXML::Simpleが不可能であることがわかっています (DOM の理解不足と、 でのいくつかの紛らわしい動作によりXML::LibXML)。

XML のサンプルを次に示します。

注: この投稿で使用するために、これを単純化しました。

したがって、基本的には、タグのNameフィールドを使用して、DOM の正しい領域にいることを確認し、タグの属性を<ADI>変更する必要があります。Value<App_Data>NameChangeMe

これは私が思いついたコードのスニペットです...そして惨めに失敗しました。

うまくいかないので、これ以上のものはありません。次のようなエラーが表示されます

この質問のボーナスとして、<Metadata>写真やポスターを含むもの (およびすべての子) を完全に削除したい場合はどうすればよいですか?

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

perl - LibXMLを使用してperlでSOAP応答を解析する

perl で SOAP 応答を解析する必要があります。

私のコード:

ns2:errorCode および ns2:message を取得するための正しい XPATH 式を取得できません。私はたくさんの答えを読んだので、これで遊んでいきますが、時間が短くなってきています。

Windows では perl 5.16 を使用していますが、solaris では perl 5.8.4 にデプロイする予定です。XML::LibXML も使用しています。

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

xml - XML::LibXML を使用したテキストの検索と置換

チルダ ( ) で囲まれたテキストを検索し、そのテキストの先頭に~文字列を追加します。たとえば、XML ファイルで を置換~it~~T1it~てから、結果を別のファイルに保存します。XPathを使用してテキストを取得する方法とそれを置き換える方法は知っていますが、置き換えられたテキストをその場所に配置して出力する方法はわかりません。

ここに私の入力XMLがあります:

これが私のPerlスクリプトです:

ここに私の望ましい出力があります:

0 投票する
4 に答える
734 参照

xml - XML::Twig またはその他の XPath 変数

XML::Twig::XPathを使用して ITS データを操作しており、変数を含む XPath 式を解決する方法を見つけようとしています。以下は、ITS仕様で作業する必要があるものの例です。

selector要素の内容である変数の値を使用して、 に含まれる XPath 式を評価できる必要がありits:paramます。私はこれを行う方法について途方に暮れています。XML::XPathのドキュメントには、変数 (コンテキストの一部である必要があると思います) が記載されており、それらを表すクラスもありますが、ドキュメントにはコンテキストで変数を指定する方法が記載されていません。可能であれば、XML::Twig からそのような機能にアクセスする方法については、さらに確信が持てません。

誰もこれを行う方法を知っていますか? または、そのような機能を XML::LibXML などの別のモジュールで使用する方法の例を挙げていただけますか (変数については広範囲に言及していますが、文字列である変数でこれを行う方法について少し確信が持てません)。

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

xml - XML::LibXML でスコープ内のすべての名前空間を取得する

XML::LibXML::Nodeのスコープ内のすべての名前空間を取得する必要があります。モジュールにはgetNamespaces()メソッドがありますが、ドキュメントにはそれが明示的に記載されています

スコープ内のすべての名前空間を返すわけではなく、そのノードに対して明示的に宣言された名前空間のみを返します。

では、特定のノードのスコープ内にあるすべての名前空間を取得するにはどうすればよいでしょうか?

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

xml - perl で XML::LibXML を使用して XML の文字列検索にメタ文字を使用する

XML ファイルを読み込んでいて、"print" の XPath を "@href="*?releaseStatus=RELEASED" に置き換えて、インスタンスの最初の出現を取得するためにジェネリックにする必要があります.どうすればそれを達成できますか?

XML ファイル:

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

xml - コンテキスト ノードのスコープで名前空間を登録解除します

XML::LibXML を使用しています。XPath コンテキストを作成する際には、使用可能な名前空間を正確に指定できる必要があります。ただし、コンテキスト ノードのスコープ内のすべての名前空間は、XPathContext オブジェクトに自動的に登録されます。それらを登録解除する必要がありますが、コンテキスト ノードのスコープ内にある名前空間を登録解除しようとするとエラーが発生します。

上記の鳴き声XPathContext: cannot unregister namespace。ソースを調べると、LibXML.xsの 7618 行目からエラーが出力されていることがわかります。関数xmlXPathRegisterNsが -1 を返したときに出力されます。私が見つけることができるこの関数の唯一のドキュメントはxmlsoft.orgにあります。このドキュメントでは、-1 の戻り値はエラーが発生したことを意味すると明記されていますが、エラーが発生する条件については明記されていません。私は一生、その方法のソースを見つけることができません。

XPath 仕様ではこの特定の操作が許可されていない可能性が非常に高いですが、それを判断することもできません。

a) XML::LibXML::XPathContext を使用してコンテキスト ノードのスコープ内の名前空間を登録解除する方法があるかどうか、または b) これが XPath で許可されていないというドキュメントがある場合は、誰にでも教えてもらえますか?

編集

Joel は、名前空間を手動で登録していない場合にのみ、名前空間の登録を解除すると特定のエラーがスローされることを示しました。ただし、登録解除はまだ正しく機能しません。