問題タブ [jdom]
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 - XML、JDom、JNI、C++で文字エンコードを処理する方法
XMLドキュメントを読み込み、JNIを含むコンテンツをC++-DLLに渡して検証するアプリケーションを開発しています。
このタスクでは、JDomとJUniversalChardetを使用して、XMLファイルを正しいエンコーディングで解析しています。私のC++はconst char*
、XMLファイルの内容にaを受け入れ、「ISO-8895-15」のエンコーディングでそれを必要とします。そうでない場合、文字の形式が正しくないために例外がスローされます。
私の最初のアプローチは、出荷されたJDomのOutputFormatterを使用Charset.forName("ISO-8859-15")
し、JDomドキュメントを文字列にフォーマットするときに使用するように指示することでした。その後、この文字列のXMLのヘッダー部分は次のようになります。
問題は、それがまだJava文字列に格納されていることです。したがって、それが正しければUTF-16になります。
私のネイティブメソッドは次のようになります。
したがって、上記の文字列をJDomのOutputFormatterからこのJNIメソッドに渡します。それでもすべてUTF-16ですよね?
JNI-C ++-メソッドではxmlFileContents String
、
では、上記の文字列をUTF-16またはUTF-8で取得しましたか?そして、私の次の質問は、std::string xmlDataString
ISO-8859-15の文字エンコードをどのように変更できますか?それとも、私がこれを行っている方法は正確にエレガントではありませんか?または、Javaで完全に文字エンコードを行う方法はありますか?
ご協力いただきありがとうございます!マルコ
java - Saxon と XSLT を使用して JDOM XML ドキュメントを変換する
iso8879 エンティティ文字列が文字の代わりに表示されるように、一部の XML を変換しようとしています。たとえば、文字列1234-5678
は になり1234‐5678
ます。これは、http://www.w3.org/2003/entities/iso8879doc/overview.htmlにある文字マップとスタイルシートを使用して行いました。
xslt の最初の部分は次のようになります。
Saxon XSLT エンジンを使用して Eclipse でこのスタイルシートを実行すると、正常に動作し、ハイフン文字の代わりにハイフン entitiy 文字列を含む XML ファイルが出力されます。ただし、このプロセスを自動化する必要があるため、JDOM パッケージを使用しています。残念ながら、変身中にキャラクターが入れ替わることはありません。変換を行うコードは次のようになります。
次に、次の方法を使用してドキュメントをファイルに書き出します。
Eclipse でデバッグを開始しましたが、xslt 変換中にハイフン文字が置き換えられていないようです。私はこれを Saxon xslt エンジンを単独で使用してテストしましたが、動作するため、Java および Jdom から使用することと関係がある可能性があります。誰でも助けることができますか?
どうもありがとう。
ジム
java - メモリ効率の高い方法でBeanのネットワークをストリームにxmlを書き込む方法
シナリオをより明確に指定するための編集。
xmlファイルを作成する必要があります。情報は複数のBean(Bean全体ではなく、一部のBeanのjsutサブセット)から取得され、一部のBeanにはリストが含まれています。したがって、xstreamに1つのルートBeanを指定して、 xml。また、いくつかのフォーマットはいくつかの条件を満たす必要があるかもしれませんが、前の問題は1つです
現在、私はJDOMを使用してメモリ内にドキュメントを作成しており、最終的にはXMLOutputterを使用してドキュメントをファイルに書き込みます。
しかし、私が書きたいBeanには、他のBeanなどの非常に大きなリストが含まれている可能性があり、使用されるメモリは非常に高くなる可能性があります。
だから私は記憶の面でより良い方法があるべきだと思いますか?xstreamを使用して大きなBean内にいくつかのBeanのxmlを作成し、それらをElementsとしてJDOMに追加しました。
プルパーサーを使用してxmlを解析するのにメモリ効率が高いのと同じ方法で、xmlの記述にも同じことが当てはまると期待していました。
java - removeContent()を使用してJDOMドキュメントから要素を削除します
次のシナリオでは、xml、Geography.xmlは次のようになります-
および次のサンプルJavaコード-
このメソッドは、のコンテンツリストからremoveContent()
要素を削除しません。bの値は、なぜ要素が削除されないのかわかりません。それが問題であるかどうかを確認するために、xmlから&要素
を削除しようとしましたが、明らかにそうではありません。
私が試した別の方法は、それが本質的に異ならないことを知っている理由がわかりませんが、それでも目的のために、使用することでした- City
doc
false
Name
Population
Parent
何が問題なのでしょうか?そして可能な解決策は?そして、誰かがメソッドの実際の動作を共有できるのであれば、removeContent()
それは親子関係に関係しているのではないかと思います。
java - Javaでjdomを使用してノードから子を削除するにはどうすればよいですか?
私は次のようなxml構造を持っています:
ここで、テキストがhttpと等しい子ノードを削除したいと思います。現在、私はこのコードを使用しています:
ただし、xmlファイルからサブ要素を完全に削除しているわけではありません。それは私に残します
助言がありますか?
java - Java jdom xml xml のセクションをコピーする
最初に xml 構造を示します。
これ<config>
がルート要素です。xml 要素を編集するための GUI を作成する必要があります。私はJSPを使用してそれを行い<engine>
、同じページでそれぞれのGUIを作成し、各ユーザーが特定のものを編集し<engine>
て要素を保存できる<config>
ようにし、その特定のタグへの変更を保存するために、<engine>
eidを使用して分離しています特定<engine>
の。
<engine>
ここで、編集中の特定のものを別のxmlファイルに書き直したいと思います。jdomを使用してそれを達成するにはどうすればよいですか?
java - 要素の混合子をテキストとして取得する方法(JDOM)
私は次のようなXMLを持っています:
JDOMを使用すると、次のテキスト構造を取得できます。
これにより、次の出力が得られます。
私が本当に欲しかったのは、要素のコンテンツを文字列、つまり。として取得することでした"This value must be <i>bigger</i> than the other."
。getValue()
近づきますが、<i>
タグを削除します。innerHTML
XMLドキュメントのようなものが欲しかったと思います...
コンテンツにXMLOutputterを使用する必要がありますか?または、より良い代替手段はありますか?
java - この例外が捕捉されなかった理由
次のコードがあります
jdom.jar ライブラリに依存するライブラリを含めるのを忘れていました。アプリケーションを実行すると、このエラーが発生しました。
JDOM のドキュメントによると、newInsance() メソッドは JDOMEXCeption をスローするため、エラーをキャッチする必要はありませんでしたか?
また、不明な例外を回避するために catch(Exception e) 句を追加する必要がないようにするにはどうすればよいですか。
ありがとう
java - あるマシンで JDOMException を取得するが、別のマシンでは同じ xml が正常に動作する
私は xml をヒットし、inputstream で応答を取得しています。この xml はリモート サーバー上にあります。
サーバーでコードを実行しているときはいつでも JDOMException が発生しますが、同じコードをローカル マシンで実行していて、リモート サーバーで同じ xml をヒットすると、問題なく実行されます。
ここで何が問題なのか、同じ xml が 1 台のマシンで正常に動作し、他のマシンでは正常に動作していないことを理解できません。
私を助けてください。
ありがとうございます
java - Xpath が空の要素オブジェクトを返す
名前空間のない文字列として xml ドキュメントがあり、Java、JDOM、および XPath を使用してそれを解析し、オブジェクト ツリーを作成したいと考えています。XPAth はクエリを実行するために常にプレフィックスと名前空間を必要とするため、名前空間とプレフィックスをルートに追加し、後で取得したいノードに追加しましたが、Xpath にはドキュメント内のすべてのノードで名前空間が必要ですが、ルートでのみ必要であることがわかります。 .
最初に、ドキュメント オブジェクト内のすべての要素に名前空間を追加して、xpath クエリが正しく機能するようにする方法はありますか?
コードには他にも間違いや悪いアプローチがあるはずです。どんなアイデアでもうれしいです。
その後
}
この最後の行は空を返します。null ではありませんが、内部で jdom 例外をスローします。