0

我目前正在尝试学习如何解析 XML 和 HTML。我能够使用当前代码解析 slickdeals XML 提要,但是当我尝试解析 slickdeals 的首页时遇到错误

[致命错误]:102:23:实体名称必须紧跟在实体引用中的“&”之后。线程“main”org.xml.sax.SAXParseException 中的异常:实体名称必须紧跟实体引用中的“&”。在 com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:246) 在 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());

谢谢您的帮助!

4

0 回答 0