arcanum_jp’s blog

おっさんの日記

Jericho Html Parser

 Element#getEndTag()

 次のようなありえない場合でもちゃんとnullが返る。

<input ...>ほげほげ</input>

 
 次のような閉じタグがオプショナルの場合は、書かないとnullが返る。

 <td>ほげほげ・・・

 次のような閉じタグを書かないものの場合、nullが返る。このように閉じタグが無い場合(
とか・・・)などは、Element#isEmptyTag()でtrueが返る。

  <input type="text" ... />

 
Element#getName()

 この名の通り、タグ名が返る(全部必ず小文字)例えば、HTML上で次のようにした場合でもinputと言う名前が返る。

  <Input ... />

 Element#isEmpty()

 タグ内のコンテンツ(CDATAセクションのことか?)が長さ0の場合true、半角スペースの空白はfalseが返る。


 Element#getDepth()

 HTML内でのインデントの深さが返る。これはSource#fullSequentialParse()が行われた後に設定されるので注意。先日書いたように以下のようにすると設定されない。

   Element elem ...
   SourceFormatter sf = new SourceFormatter(elem);

 fullSequentialParse()が行われるタイミングは以下の場合

 Element#getDepth()
Element#getParentElement()
Segment#findAllElements()
Segment#findAllStartTags()
Segment#findAllTags()
Segment#getChildElements()
Segment#ignoreWhenParsing()
Tag#findNextTag()
Tag#findPreviousTag()
TagType#getTagTypesIgnoreEnclosedMarkup
TagType#isValidPosition()

 いっぱい書いたけど、Elementを使って何か解析しようとすると実行されるので心配いらないす。