我試圖解析HTML與NekoHTML一個簡單的片斷:NekoHTML SAX解析片段
<h1>This is a basic test</h1>
要做到這一點,我給自己定一個specific Neko feature不要有任何HTML,頭部或身體的標籤調用的startElement (..) 回電話。
不幸的是,它不適合我..我當然錯過了一些東西,但無法弄清楚它會是什麼。
這是一個非常簡單的代碼來重現我的問題:
public static class MyContentHandler implements ContentHandler {
public void characters(char[] ch, int start, int length) throws SAXException {
String text = String.valueOf(ch, start, length);
System.out.println(text);
}
public void startElement(String nameSpaceURI, String localName, String rawName, Attributes attributes) throws SAXException {
System.out.println(rawName);
}
public void endElement(String nameSpaceURI, String localName, String rawName) throws SAXException {
System.out.println("end " + localName);
}
}
和主()啓動測試:
public static void main(String[] args) throws SAXException, IOException {
SAXParser saxReader = new SAXParser();
// set the feature like explained in documentation : http://nekohtml.sourceforge.net/faq.html#fragments
saxReader.setFeature("http://cyberneko.org/html/features/balance-tags/document-fragment", true);
saxReader.setContentHandler(new MyContentHandler());
saxReader.parse(new InputSource(new StringInputStream("<h1>This is a basic test</h1>")));
}
相應的輸出:
HTML
HEAD
end HEAD
BODY
H1
This is a basic test
end H1
end BODY
end HTML
而我期待
H1
This is a basic test
end H1
有什麼想法?
如果您將此功能設置爲false,您是否得到完全相同的輸出? –
是的,完全一樣:-( – Gael