- PR -

TidyでのDOCTYPE宣言の扱いについて

1
投稿者投稿内容
VBEE
会議室デビュー日: 2005/12/05
投稿数: 6
投稿日時: 2005-12-14 15:25
こんにちは。
Tidyについて質問があります。

環境はWinXP
Tidyは[04aug2000r7]
Javaは[JDK1.4]
を使用しています。

現在java+TidyにてHTMLをパースするアプリケーションを開発しています。
その中でHTMLの<!DOCTYPE>宣言を行っていないHTMLをパースした後にDocTypeを取得できてしまう事があります。
色々と試してTidyがDOCTYPEを補完しているのに気づきました。
今の所以下のパターンを確認しています。

DocTypeなし、HTMLにブラウザ固有タグ等を含める→DocType取得できない。
DocTypeなし、HTMLにブラウザ固有タグ等を含めない→4.01 Transitional or Frameset(他にもあると思います。)

この補完を行わないTidyの設定や、解決策などありますでしょうか?
宜しくお願いします。

現在おこなっている処理の抜粋
●初期化部分
Tidy tidy = new Tidy();
Properties p = new Properties();
p.put("tidy-mark", "false");
p.put("quote-marks", "true");
tidy.setConfigurationFromProps(p);
tidy.setQuiet(true);
tidy.setShowWarnings(true);
tidy.setIndentContent(false);
tidy.setIndentAttributes(false);
tidy.setSmartIndent(false);
tidy.setWraplen(0);
tidy.setXHTML(false);
tidy.setXmlOut(false);
tidy.setMakeClean(false);
tidy.setCharEncoding(Configuration.RAW);

●パース部分
Document doc = tidy.parseDOM(new ByteArrayInputStream(b), null);
DocumentType doctype = doc.getDoctype();
if(doctype != null){ ←ここで<!DOCTYPE>宣言のないHTMLでも取得する
doctype.getName();
}
1

スキルアップ/キャリアアップ(JOB@IT)