dT*blog

design and programming

NekoHTML+XPathで注意すべきこと

HTMLパーサの素敵ライブラリ NekoHTML のパース結果を、XPathAPI でごにょごにょしようとしたら、上手くノードが取れない。なぜ。

Document doc = parser.getDocument();
NodeList nodelist = XPathAPI.selectNodeList(doc, "//input");

試しに Xerces2 の DOMParser を使ってみると、上手く行く。まさか相性とかじゃないし、何だろうと思ってログを眺めていたら、タグ名が大文字になって返ってきてるわけ。えー。

ちゃんとFAQに書いてありました。

Element names are written in uppercase letters (e.g., BODY). Attribute names are written in lowercase letters (e.g., lang, onsubmit).

ということで、NekoHTML のパース結果に対してタグ名処理する場合は、大文字にしなくちゃいけない。

Document doc = parser.getDocument();
NodeList nodelist = XPathAPI.selectNodeList(doc, "//INPUT");

見事にハマりました。春だなあ。

Posted by dT by 19:14

トラックバック

このエントリーのトラックバックURL
http://www.deftrash.com/admin/mt/mt-tb.cgi/421

コメント




保存しますか?

(書式を変更するような一部のHTMLタグを使うことができます)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31