問題タブ [dom4j]
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.
java - dom4j を使用してストリームから単一の XML ドキュメントを読み取る
dom4j を使用してストリームから一度に 1 つの XML ドキュメントを読み取り、処理してから、ストリーム上の次のドキュメントに進みます。残念ながら、dom4j の SAXReader (裏で JAXP を使用) は読み取りを続け、次のドキュメント要素を停止します。
ドキュメント要素の終わりを見つけたら、SAXReader にストリームの読み取りを停止させる方法はありますか? これを達成するためのより良い方法はありますか?
jython - Jython(dom4j)スクリプトをより優雅にするためのサポートが必要です:)
Jythonは優れた言語のように思われるので使い始めましたが、これまでのところ証明されています。
私はdom4jを使用して、ディスク上にある一連のHTMLファイルのDOMからデータを操作および取得しています。以下のスクリプトを記述して、 H1タグのXpathを使用してDOMをスローし、テキストを取得します。H1タグがDOMに存在しない場合は、タイトルタグを検索し、そこからテキストを取得します。
私はJythonを初めて使用しますが、必要なタスクを以下の方法よりもはるかに優雅に実行する方法があると確信しています。これを正しく考えている場合、より良い方法を教えてくれる人はいますか?
誰かが助けることができればそれは素晴らしいでしょう。乾杯
jython - Jythonとdom4jの要素の間に要素を追加することは可能ですか?
dom4jで遊んでいるだけで素晴らしい。私は1年半PHP開発者でしたが、新しい仕事に就き、Jythonで遊んでいました。今では、素晴らしい言語である暇があります。以下の例のように、要素の間に要素を追加しようと考えていました。
DOMを文字列に変換せずに、2つの間に別のpタグを挿入して、再びDOMに戻すことは可能ですか?これが私ができる唯一の方法です。
java - dom4j を使用してドキュメントを処理するのに助けが必要
2 つの Document Object を作成します。1 つの Element を移動したいのですが、それは子 Elements です。どうすればそれを行うことができますか。誰か教えてください。ありがとうございます。^_^
xml - Dom4J で DOM を使用する場合と比較して、XPath はどの程度効率的ですか?
たとえば、次のxmlを考えてみましょう
DOM を使用してルート ノードを取得し、次に childNode と grandChildNode を循環させるのは効率的ですか、それとも XPath 式を使用して子ノードと grandChild ノードの詳細を効率的に収集しますか?
java - (dom4j を置き換えるために) どの Java XML ライブラリをお勧めしますか?
私は dom4j のようなものを探していますが、dom4j の疣贅がなく、ドキュメントが悪いか欠落しており、開発状況が停滞しているように見えます。
背景: 私は dom4j を使用し、 支持してきましたが、ライブラリが最適とはほど遠いことを知っているため、それについて完全に正しいとは感じていません (例: XSLT 関連のStylesheetクラスのメソッドがどのように文書化されているかを参照してください; run( )String mode
パラメータとして?)
要件: ライブラリは、純粋な JDK (およびパッケージ)を使用 する場合よりも基本的な XML 処理を容易にする必要があります。このようなもの:javax.xml
org.w3c.dom
- XML ドキュメントを (ファイルまたは文字列から) オブジェクトに読み込み、DOM を簡単にトラバースして操作し、XPath クエリを実行し、それに対して XSLT を実行します。
- Java コードで XML ドキュメントを構築し、要素と属性とデータを追加して、最後にドキュメントをファイルまたは文字列に書き込みます。
私はdom4j が約束していることを本当に気に入っています。実際には、「XML、XPath、および XSLT を操作するための使いやすいオープン ソース ライブラリ [...] DOM、SAX、および JAXP を完全にサポートしています。」 : Java 5 を十分に活用し、不足しているドキュメントを追加します。しかし、残念なことに、よく見ると:
警告: dom4j 2.0 はプレアルファ段階です。コンパイルできない可能性が高いです。ランダムにコンパイルできる場合、実行できない可能性があります。たまに走ると突然爆発することがあります。dom4j を使用する場合は、バージョン 1.6.1 が必要です。本当。
...そして、ウェブサイトは長い間それを言っています. では、dom4j に代わる良い方法はありますか? 名前やリンクをダンプするだけでなく、好みのライブラリの正当な理由を提供してください。:-)
xpath - Dom4j デタッチ ノード、Jython
以下のように、Dom4j を使用してノードをデタッチしています。
名前で div ノードを選択し、detach メソッドを使用して削除しています。
これはdivをうまく削除しているようですが、そのdiv内の要素とテキストも削除することに気付きました。私が達成しようとしているのは、div内の要素とテキストを削除せずにdivを削除することです。その結果、次のようになります。
dom4jでこれを達成することは可能ですか? これについての提案がない場合はどうすればよいですか?
乾杯
イーフ
アップデート:
@アラマー
あなたのコードを取得して少し編集することで、私が望んでいたことを達成しました。これが私が思いついたものです。
これは機能しているように見えますが、以下の状況では親ノードの最後にノードを追加します:
結果は次のとおりです。
「keep」という名前のdivの後に追加するのではなく、「keep」という名前のdivの前に、削除されたノードの内容を元の位置にとどめる方法を見つけようとしています。私はいくつかのことを試しましたが、これを達成できないようです。誰か助けてもらえますか?
イーフ
java - dom4jで読むときのドキュメントエンコーディングの変換
dom4j の SAXReader によって解析されているドキュメントを ISO-8859-2 エンコーディングから UTF-8 に変換する方法はありますか? dom4j によって作成されたオブジェクトが既に Unicode/UTF-8 であり、次のようなコードを実行しているように、解析中にそれを行う必要があります。
true を返します。