問題タブ [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.
xml - Perl XML:LibXML setAttribute がドキュメントを変更しない
Perl を使用して XML 属性を変更しようとしています。
XML ファイルは次のようになります。
Perl スクリプトには以下が含まれます。
その結果、スクリプトは属性を変更しません。私はすでにアクセス許可をテストしており、スクリプトは .xml を使用して XML ファイルを読み書きできますprint
。
setAttribute
hasAttribute
true を返すにもかかわらず、まったく何もしないようです。
xml - (x)html の perl xml::libxml dom パーサーのクックブック例の便利なセット?
xml 用のいくつかの単純な perl dom パーサーの作成者は、XML::LibXML を支持して混合コンテンツの使用を思いとどまらせているようです。だから私は今、XML::LibXML を学び始めており、よく使われるクックブックの例を探しています。Web から (x)html ドキュメントを読み取り、それを操作することを考えてみてください。(perl クックブックの第 2 版は現在 10 年前のものであり、ここでのカバー範囲は比較的弱いものです。) 私は次のことから始めたいと考えました。
スターターが使用できる良いレシピの例には、
$dom を perl データ構造に変換します。Data::Dumper($dom) では特に興味深い結果は得られませんでした。もちろん、from と to の両方の方法で変換したいと考えています。
おそらく何らかの制御を行って、出力をきれいに印刷します。
html を xhtml にサニタイズします。
ロジックで変換を行います。(個々の dom 要素で物事を行う良い例がありますが、私はより一般化できると考えています。) たとえば、2 つの連続した dom 要素を操作するにはどうすればよいでしょうか? 私はXABを持っています。このように連続している場合は、「クラス」または「スタイル」を sup に追加します (例: style="width:0")。
すべてのクラスとスタイルを最小限のテンプレート スタイル シートに分割します。
XML::LibXML の他の「クール」で「シンプル」な使用法。
(有用なレシピに応じて質問を後で編集するために残されています)提案:
(a) <ul> 内の <li> ごとに id を増やして列挙します (例: <li id="1"> ... <li id="2"> ...)。複数の要素で行うことができます
(b) 複数のタグを繰り返す (例: すべての li、dl、および dt を出現順に出力する)
サンプルを高く評価しました。
/iaw
perl - Perl LIBXML : 属性を持つ findnodes を使用して xml ファイル内のノードに到達する
XML ファイルは次のようになります。
私のコードは以下のようになり、変数を使用する代わりに属性 (名前) のハードコードされた値を使用すると正常に動作します。行を参照しています ( my $query =
'//application[@name="pos"]'; )
しかし、$query 変数を変更して、属性のハードコードされた値の代わりに変数 ($applicationName) を使用すると、次のようなコンパイル エラーが発生します。
updateManifest.pl 行の未定義の値に対してメソッド「appendChild」を呼び出せません
変更されたコード:
何が悪いのかわからない。引用符と関係がありますか?どんな助けでも大歓迎です。
perl - Perl XML::LibXML - 置換要素の値を置換できません
XMLファイルは次のようになります
kportal
特定の成果物ノードのノードに値を追加して、次のようにしたい<kportal>KPORTAL-1</kportal>
私のコードは次のようになります
エラーが発生しています
xml - perl XML::LibXML で XML ノードを再帰的にトラバースする
xml を解析し、最後の子までトラバースする必要がある xml があります。XML は動的に生成されるため、XML の深さはわかりません。最後の子と兄弟がある場合は、xml を反復処理できますか。この問題の解決にご協力ください:
私のコードスニペットは次のとおりです。
これはノードを深さ 2 まで出力しますが、深さが 3 の場合、ルートに子が 1 つあり、子がコードで出力することを意味しますが、ここに別の子がある場合、コードは出力されず、推測できません。 .
前もって感謝します。
linux - XSD に対する検証時に perl libXML がクラッシュする
アプリを最新の Debian に移行していますが、XSD に対して XML を検証するときに奇妙なサーバー エラーが発生します
その原因
* glibc が検出されましたperl: free(): 無効なポインタ: 0x0000000001cca220 * * ======= バックトレース: ========= /lib/x86_64-linux-gnu/libc.so.6(+0x76d76)[0x7fa0edd5fd76 ] /usr/lib/perl5/auto/XML/LibXML/LibXML.so(PmmREFCNT_dec+0xa3)[0x7fa0ed27c543] /usr/lib/perl5/auto/XML/LibXML/LibXML.so(XS_XML_ LibXML_Node_DESTROY+0xeb)[0x7fa0ed260a4b] /usr/lib/libperl.so.5.14(Perl_pp_entersub+0x58c)[0x7fa0ee7ce70c] /usr/lib/libperl.so.5.14(Perl_runops_standard+0x16)[0x7fa0ee7c5ce6] /usr/lib/libperl. so.5.14(Perl_call_sv+0x45b)[0x7fa0ee7619db] /usr/lib/libperl.so.5.14(Perl_sv_clear+0x559)[0x7fa0ee7d4bd9] /usr/lib/libperl.so.5.14(Perl_sv_free2+0x52)[0x7fa0ee7d5292] /usr/ lib/libperl.so.5.14(Perl_leave_scope+0x122f)[0x7fa0ee7fccef] /usr/lib/libperl.so.5.14(Perl_pp_leave+0xf2)[0x7fa0ee7cb112] /usr/lib/libperl.so.5.14(Perl_runops_standard+0x16)[0x7fa0ee7c5ce6 ] /usr/lib/libperl.so.5.14(perl_run+0x3a5)[0x7fa0ee767815] perl(main+0x149)[0x400f89] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xfd)[0x7fa0edd07ead] perl[0x400fc1] ======= メモリーマップ: ======== 00400000-00402000 r-xp 00000000 08:01 137813 /usr/bin/perl
等々
割り当てられたメモリを解放しようとすると失敗していると思います。オブジェクトのクローンを作成しようとしましたが、それを止めるものは何もないようです。これは、wheezy と jessie のクリーン インストールで失敗します。
xpath - libxml での XPath 関数の使用
libxml 2.8.0 で特定の XPath 式を評価しようとしていますが、関数に関するエラー メッセージが表示されます。libxml が XPath 仕様の全体またはサブセットを実装しているかどうかは、私には明らかではありません。実装されているものとその使用方法を明確に特定するリソースはありますか?
私の特定のケースでは、評価しようとしている 1 つの式は次のとおりです。
XML::LibXML Perl モジュールを介して libxml を使用していますが、xmlsoft.org から入手できるサンプルツールを使用して式を試したところ、同じエラー メッセージが表示されました。xpath1.c
fn
名前空間の有無にかかわらずxpath.c
、Perl スクリプトの有無にかかわらず試してみましたが、同じ結果が得られました。