提问人:Robert 提问时间:6/6/2018 最后编辑:Robert 更新时间:6/7/2018 访问量:1443
使用 java 解析 XHTML
Parsing XHTML with java
问:
我需要一些关于在 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();
}
来自 Eclipse 的响应:
[Fatal Error] :1:1: Content is not allowed in prolog.
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.
我正在尝试解析的XHTML示例(来自TD Ameritrade API):
<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>
我感谢任何帮助!
答:
0赞
gagan singh
6/7/2018
#1
虽然该问题包含注释中提到的所有问题,但第 1 行第 1 列的错误与流开头的 BOM 有关。
某些服务,尤其是 .Net 服务,会在流的开头发送 BOM 来标记编码,例如 UTF-8、UTF-16LE 等。
评论