我有這樣的功能:Tagsoup無法解析從StringReader(JAVA)的HTML文檔
private Node getDOM(String str) throws SearchEngineException {
DOMResult result = new DOMResult();
try {
XMLReader reader = new Parser();
reader.setFeature(Parser.namespacesFeature, false);
reader.setFeature(Parser.namespacePrefixesFeature, false);
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.transform(new SAXSource(reader,new InputSource(new StringReader(str))), result);
} catch (Exception ex) {
throw new SearchEngineException("NukatSearchEngine.getDom: " + ex.getMessage());
}
return result.getNode();
}
它需要包含一個POST請求後,由HTTP服務器發送的HTML文檔中的字符串,但無法解析它正確 - 我只從整個文檔中得到四個節點。字符串本身看起來很好 - 如果我將它打印出來並將其複製到文本文檔中,我會看到我期望的頁面。
當我用上面的方法的重載版本:
private Node getDOM(URL url) throws SearchEngineException {
DOMResult result = new DOMResult();
try {
XMLReader reader = new Parser();
reader.setFeature(Parser.namespacesFeature, false);
reader.setFeature(Parser.namespacePrefixesFeature, false);
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.transform(new SAXSource(reader, new InputSource(url.openStream())), result);
} catch (Exception ex) {
throw new SearchEngineException("NukatSearchEngine.getDom: " + ex.getMessage());
}
return result.getNode();
}
然後一切工作就好了 - 我得到適當的DOM樹,但我需要以某種方式從服務器檢索的POST答案。
將字符串存儲在文件中並讀取它不起作用 - 仍然獲得相同的結果。
可能是什麼問題?