arcanum_jp’s blog

おっさんの日記

Jericho Html Parser

 pとかaとかtableとか、個別のタグごとにSourceFormatterを適用したいなと考えています。なんでかと言うと、例えばTableのtdタグなんかは、1文字しかない場合なんかは自分は1行で書いてしまった方が見やすいです。でもSourceFormatter#setIndentAllElement(true)をしてしまうと、そんな考えも無いので、ちょっとこの辺は使いづらいなと。

 そこで、Sourceクラスをずっと見ていたらこんな記述が・・・

    public SourceFormatter getSourceFormatter(){
        return new SourceFormatter(this);
    }

 なんだ、SourceFormatterを動的にnewしているだけ??だったら、Sourceから取り出した各Elementクラスを使ってnew SourceFormatter(element);見たいにすればいいんじゃ・・・

  例:
      Source src = new Source("html文字列");
      List list = src.getChildElements();
      Element elem = (Element)list.get(n);
      SourceFormatter f = new SourceFormatter(elem);
      f.setIndentString("    ");

 でもこれだめ。ここでnewしたらインデントの位置が初期化されてしまうので。何かいい方法ないかなぁ・・・