jdom SAXBuilder を使用して XML ドキュメントを取得します。私の問題は、返されたドキュメントで、すべての要素の前に行区切り記号 ('/n') があることです。jdom docs を見たところ、これはパーサーの通常の動作のようです。避けたいのですが道がわかりません。ヒントをいただければ幸いです。フラビオ
1 に答える
\n 文字はどこにありますか? それらが入力の一部である場合、JDOM はそれらを自動的に保持し、JDOM コンテンツを出力するときにそれらは引き続き存在します。データの出力方法を変更したい場合は、'Format' インスタンスを使用して出力形式を変更できます。
出力に \n 文字が含まれないようにする場合は、Format.getCompactFormat() 形式を使用する必要があります...ただし、新しい JDOM 2.0.0 を使用している場合、これにはバグがあるため、ホットフィックスを使用する必要があります。 github の zip: https://github.com/downloads/hunterhacker/jdom/jdom-2.x-issue72.zip。JDOM-2.0.1 は来週かそこらで正式な修正と共にリリースされます。
入力/解析プロセスの一部として \n 文字を取り除きたい場合は、独自の JDOMFactory インスタンス (サブクラス DefaultJDOMFactory) の使用を検討し、 text(...) メソッドをオーバーライドしてテキストをトリミングしてから Text を返す必要があります。実例。
それ以外の場合は、XML を解析した後、ツリー全体をスキャンして、必要に応じて \n 文字を取り除くことができます。
そうしないと、JDOM は、要求しない限り \n 文字を追加しません。