問題タブ [processing-instruction]
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.
jaxb - JAXB: 元のドキュメントから処理命令をマーシャリングして回復する方法は?
XML Java ソリューションをプレーンな JaxB に置き換えたいマネージャーがいます。マーシャリングすると、XML は入ったようには見えず、(私の知る限り) XML に変更を加えていません。私は間違っている可能性があります。おそらく JAXBContext を正しく作成していませんが、現在は JaxB 自体が変更を行っているようです。
中心的な問題の 1 つは、JaxB が元のドキュメントから処理命令を取り除いていることです。処理命令は、当社のビジネスにとって非常に重要です。ドキュメントへのテキストの変更 (追加および削除されたもの) を追跡し、テキストの「セクション」の履歴 (全体が最初に作成された時期と場所) を記録するためにそれらを使用します。これらの処理命令は、プレーン テキストとノードを囲む、ドキュメントのさまざまなレベルにあります。この情報がなければ、ドキュメントはお客様にとって意味がありません。
アンマーシャリングおよびマーシャリング時に、これらの処理命令を元のドキュメントから保持する方法はありますか? マーシャリング中に処理命令を追加することについてスタックオーバーフローで話している人を見たことがありますが、元のドキュメントから既存の処理命令を保持する方法について回答があると思われる質問は見当たりません。XMLAdaptor と XMLStreamReader の使用を検討しましたが、行き止まりになりました。どちらも、PI を保持するのではなく、PI を追加することを目的としたソリューションのように見えます。しかし、おそらく私がそれらを間違って使用している可能性を排除することはできません.
python - lxml を使用してルート要素の前後の処理命令にアクセスする
lxmlを使用して、ルート開始タグの前またはルート終了タグの後にある処理命令にアクセス/反復するにはどうすればよいですか?
私はこれを試しましたが、ドキュメントによると、ルート要素内でのみ反復します:
私の唯一の解決策は、XML をダミー要素でラップすることです。
より良い解決策はありますか?