用java解析XHTML

用java解析XHTML,java,xml,parsing,dom,xhtml,Java,Xml,Parsing,Dom,Xhtml,我需要一些关于阅读java中URL XHTML页面的指导: 以下是我打印特定字符串的最佳尝试: try { URL item = new URL("url"); URLConnection connect = item.openConnection(); DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();

我需要一些关于阅读java中URL XHTML页面的指导:

以下是我打印特定字符串的最佳尝试:

    try {       
    URL item = new URL("url");
                URLConnection connect = item.openConnection();
                DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
                DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
                Document doc= dBuilder.parse(connect.getInputStream());
                doc.getDocumentElement().normalize();
                NodeList nList = doc.getElementsByTagName("tag");
                for(int temp = 0; temp<nList.getLength(); temp++) {
                    Node nNode = nList.item(temp);
                    if(nNode.getNodeType() == Node.ELEMENT_NODE) {
                        Element el = (Element) nNode;
        System.out.println((el.getElementsByTagName("wantedElement").item(0).getTextContent()));
                    }}
}catch(IOException | ParserConfigurationException | SAXException e) {
            e.printStackTrace();
            }
我试图解析的XHTML示例(来自TD Ameritrade API):


45.97
46.26
45.8
46
7176781
1496293200000
46.22
46.86
45.9
46.8
9523927
1496379600000

谢谢你的帮助

虽然问题包含注释中提到的所有问题,但第1行第1列的错误与流程开头的BOM有关

一些服务,特别是.Net服务在流的开头发送BOM以标记编码,如UTF-8、UTF-16LE等


发布您试图解析的文本如何如果您的XML缩进和代码片段一样混乱,我有一个关于错误原因的线索:)我不会尝试解析使用DOM API从某个网站提取的XHTML。改用jsoup。更宽容的是,您解析的不是XHTML,而是XML。您需要发布整个响应,包括前几个字符,因为这就是问题所在(您还需要发布结尾,因为您发布的xml无效,因为它没有关闭所有标记),如果您尝试使用它验证此xml也失败了
 [Fatal Error] :1:1: Content is not allowed in prolog.
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.
<CandleList>
<candles>
<candles>
<open>45.97</open>
<high>46.26</high>
<low>45.8</low>
<close>46.0</close>
<volume>7176781</volume>
<datetime>1496293200000</datetime>
</candles>
<candles>
<open>46.22</open>
<high>46.86</high>
<low>45.9</low>
<close>46.8</close>
<volume>9523927</volume>
<datetime>1496379600000</datetime>
</candles>