tôi có chức năng này:TagSoup thất bại trong việc phân tích tài liệu html từ một StringReader (java)
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();
}
Phải mất một String chứa tài liệu html gửi bởi máy chủ http sau một yêu cầu POST, nhưng thất bại trong việc phân tích cú pháp nó đúng - tôi chỉ nhận được bốn nút từ toàn bộ tài liệu. Chuỗi chính nó trông ổn - nếu tôi in nó ra và copypasta nó vào một tài liệu văn bản tôi thấy trang tôi mong đợi.
Khi tôi sử dụng một phiên bản quá tải của các phương pháp trên:
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();
}
sau đó mọi thứ hoạt động tốt - Tôi nhận được một cây DOM thích hợp, nhưng tôi cần phải bằng cách nào đó lấy câu trả lời POST từ máy chủ.
Lưu trữ chuỗi trong một tệp và đọc lại chuỗi đó không hoạt động - vẫn nhận được kết quả tương tự.
Điều gì có thể là vấn đề?