【发布时间】:2021-02-27 11:27:30
【问题描述】:
我想阅读下面的 XML 响应,但它给出了错误。
<html>
<head>
<title>OK</title>
</head>
<body>
<h1>OK</h1>
<table>
<tbody>
<tr>
<td>Status</td>
<td><div id="Status">200</div></td>
</tr>
<tr>
<td>Message</td>
<td><div id="Message">Page created</div></td>
</tr>
<tr>
<td>Location</td>
<td><a href="/content/parentnode/demopage" id="Location">/content/parentnode/demopage</a></td>
</tr>
<tr>
<td>Parent Location</td>
<td><a href="/content/parentnode" id="ParentLocation">/content/parentnode</a></td>
</tr>
<tr>
<td>Path</td>
<td><div id="Path">/content/parentnode/demopage</div></td>
</tr>
<tr>
<td>Referer</td>
<td><a href="" id="Referer"></a></td>
</tr>
<tr>
<td>ChangeLog</td>
<td><div id="ChangeLog"><pre></pre></div></td>
</tr>
</tbody>
</table>
<p><a href="">Go Back</a></p>
<p><a href="/content/parentnode/demopage">Modified Resource</a></p>
<p><a href="/content/parentnode">Parent of Modified Resource</a></p>
</body>
</html>
我正在尝试使用以下代码阅读“页面已创建”消息
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder()
.parse(new InputSource(new StringReader(response.toString())));
NodeList nodes = doc.getElementsByTagName("div");
if (nodes.getLength() > 0) {
Element ele = (Element) nodes.item(0);
System.out.println("Page created -"
+ ele.getElementsByTagName("//div[contains(@id,'Message')]").item(0).getTextContent());
} else {
}
[Fatal Error] :1:1: Content is not allowed in prolog.
Exception in thread "main" org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:262)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
at working.OkhttpCreatePage.main(OkhttpCreatePage.java:40)
第 40 行是.parse(new InputSource(new StringReader(response.toString())));
我做错了什么?
【问题讨论】:
标签: java xml xml-parsing