OutputDocumentクラス
使い方はいたって簡単だった。Sourceを生成したら、それを引数にOutputdocumentを生成して、独自に整形したいタグを見つけて、変更するだけ、
OutputDocument doc = new OutputDocument(source); // TRタグを全部取得 List tlist = doc.findAllElements(); // 例えば1件目だけを変更するか・・・ Element elem = (Element)tlist.get(0); // タグを自分で描画する必要があるらしい String s = "<tr\n"; Attributes ats = e.getAttributes(); Iterator ite = ats.iterator(); while(ite.hasNext()){ Attribute at = (Attribute)ite.next(); s = s + at.getKey() + "=\"" + at.getValue() + "\"\n"; } s = s + ">"; // これが無いと、タグの内部のタグが描画されない s = s + e.getContent(); s = s + "</tr>"; // 最後に特定のタグのみの内容を変更する。 doc.replace(elem, s);
でもこれだとこんな感じに描画されてしまう。使い方が間違っているのかな?
<table> <tr abc="hoge" def="fuga" class="foo"> <td>111</td> <td>222</td> <td>333</td> </tr> <tr abc="hoge" def="fuga"> <td>444</td> <td>555</td> <td>666</td> </tr> </table> ↓↓↓ <table> <tr abc="hoge" def="fuga" class="foo" > <td>111</td> <td>222</td> <td>333</td> </tr> <tr abc="hoge" def="fuga"> <td>444</td> <td>555</td> <td>666</td> </tr> </table>
結果から見ると、どうやらインデントとかの処理も自分で行う必要があるらしい