問題タブ [xml-twig]
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.
perl - XML::Twig が cpan でインストールに失敗する
CGI モジュールのインストールは初めてです。私の開発マシンでは、ppm
モジュールのインストールに使用しました。私の運用サーバーには ActivePerl がないため、ppm
.
で XML::Twig をインストールしようとするとcpan
、次の出力が得られます。
perl - XML::Twig を使用して twig_handlers でメソッド next_sibling または next_elt を使用できない
私はまだ使用に慣れていませんXML::Twig
。
メインプログラムから、属性を持つ要素を探します@method="create"
サブルーチンで、属性 を持つ次のplayer
要素/兄弟を見つけたいです。@method="modify"
これらのメソッドは両方ともサブルーチンで失敗player
し、エラーが発生しますCan't call method "gi" on an undefined value
input.xwo の例:
私の簡単なコード:
perl - $self を XML::Twig ハンドラに渡すことはできますか?
クラスメソッドで指定されたコマンドに応じて返されるさまざまな XML を解析しようとしていますが、ここで少し深くなっていると思います。
他のメソッドを使用して、XML::Twig ハンドラーの WITHIN からインスタンスの属性にアクセスできるようにしたいと考えています。
これは、XML::Twig を使用して XML を取得および解析するために Moose オブジェクトで定義したインスタンス メソッドです。
そして、ハンドラーの1つの定義(これを正しく行う方法を見つけている間、実際には何もしていません:
これは問題なく機能しますが、私が望むのは、process_symm_info
メソッドが $self にアクセスし、$self がもたらすすべてのメソッドと属性にアクセスできるようにすることです。それは可能ですか?私はこれをすべて間違っていますか?XML の特定の部分を指定できるので、ハンドラー内からそのデータを使用して他のことを実行できると便利です。
これは、Perl Moose への私の最初の冒険のようなものです (まだわからない場合)。
perl - XML::Twig-同じタグを持つフィールドの管理
複雑なXMLデータの解析が必要なプロジェクトがあります。私は一緒に行くことにしました、XML::Twig
そしてそれはほとんどの部分で本当にうまくいきます。異なる情報が同じタグ名を持っているが、パスが異なるという問題に遭遇しました。DateOfBirth
が2つの異なるフィールドに使用される以下のようなもの。
さまざまな情報を処理するためにいくつかのハンドラーを設定しましたが、兄弟の詳細は必要なかったため、フィールドをXML要素にマップする2レベルのハッシュに基づいて最後に処理されていました。
サンプル:
したがって、兄弟のDOBが処理されているときは、上記のハッシュ要素を使用して設定されますが、人のdobが処理されたときは、すでに値が存在するため、次の要素に移動します。
そこで、別のハンドラーを設定し、情報が前に処理されることを確認しました。
ここで問題となるのは、同じ名前が複数の要素に使用されているが、パスが異なる場合が複数あると想像してみてください。より多くのハンドラーを作成するだけですか、それともこの種の状況をより適切に管理する別の方法がありますか。
関連するコード:
参考までに、実際のXMLファイルは約700行で、エンコードされたPDFも含まれています。
別のオプションは、タグをdbフィールドにマップする別のフラグをハッシュに設定し、情報が最初に処理されるときにそれを設定することです。
ありがとう
PS:編集が多すぎて申し訳ありません。私は今それを手に入れたと思います。
PPS:コードとxmlには表示できない機密情報があるため、その一部を編集する必要がありました...
perl - XML::Twig を使用して XML 属性値を変更する
を使用して XML 属性値を変更したいと考えていますXML::Twig
。私はこのXML::LibXML
ように使用してこれを行うことができます
しかしXML::Twig
、いくつかの制約のために使用する必要があります
入力
出力
このコードを試しましたが、内容が変更されていません
perl - XML::Twig を使用して既存の XML ファイルに XML レコードを追加する
既存の XML ファイルの xpath の下にコンテンツのブロックを追加しようとしていました。Perl を使用したこの XML 解析は初めてでした。しかし、私はこのXML::Twigを使用することになっていました。
入力:
出力:
perl - インクリメントされた id 属性をすべての要素に追加する
指定された要素に増分値を持つ id 属性を追加する方法を示す XML-Twig の例があります。インクリメントされた ID をすべての要素に追加する簡単な方法はありますか。
perl - 未知のルートタグ解析を機能させる方法
xml 変換を行っています。ここではルート タグを book として定義していますが、ここで定義されている不明なルート タグを取得するには、共通のシンテックスが必要です。
私は試した、
ルートタグのコマンドシンテックスがある場合は機能しませんでした。例を示してください
perl - xml-twig で parse を使用して xml 文字列を解析する際の制限は何ですか?
$twig->parse($xmlstring) を使用して、文字列内のすべての xml 要素に id 属性を追加しようとしています。各文字列は、次のような配列の要素です。
スクリプトでは、foreach ループを使用して各要素を取得し、id 属性を作成します。
ルーチンを呼び出す twig オブジェクトと TwigHandler を作成し、parsefile を使用して xml ファイルを指定した場合にのみ機能します。parse を使用して、配列の要素である xml ファイルの一部を解析すると機能しません。私が使用しているルーチンは次のとおりです。