我目前正在尝试学习如何解析XML和HTML。我能够使用当前代码解析slickdeals XML feed,但是当我尝试解析slickdeals的首页时遇到了错误
[致命错误]:102:23:实体名称必须紧跟“&”在实体参考中。 线程“main”org.xml.sax.SAXParseException中的异常:实体名称必须紧跟'&'在实体参考中。 在com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:246) at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:284) 在javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:124)
public class SlickDealMainPage {
public void parsing() throws Exception{
String url = "http://slickdeals.net/";
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new URL(url).openStream());
doc.getDocumentElement().normalize();
//System.out.println("Root Element : " + doc.getDocumentElement().getNodeName());
System.out.println("Root Element : " + doc.getElementsByTagName("Body"));
NodeList itemList = doc.getElementsByTagName("body");
/* for(int temp = 0; temp < itemList.getLength(); temp++)
{
Node itemNode = itemList.item(temp);
System.out.println("\nCurrent Element : " + itemNode.getNodeName());
Element itemElement = (Element) itemNode;
System.out.println("\ntitle : " + itemElement.getElementsByTagName("title").item(0).getTextContent());
System.out.println("\nLink : " + itemElement.getElementsByTagName("link").item(0).getTextContent());
System.out.println("\nDate Published: " + itemElement.getElementsByTagName("pubDate").item(0).getTextContent());
}*/
}
}
我是使用DOM方法进行解析的新手,我已经遍地搜索了这个问题的答案。但是,我确实非常了解其他答案。
编辑:错误发生在
Document doc = db.parse(new URL(url).openStream());
感谢您的帮助!