2013-10-10 3 views
0

Я новичок в анализе XML. Я пытаюсь получить доступ к API «I Heart Quotes». Это кусок кода, генерирующего ошибку:Анализ XML-документа из Интернета

String link = "http://www.iheartquotes.com/api/v1/random.xml"; 
URL url = new URL(link); 
InputStream is = url.openStream(); 
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
DocumentBuilder db = dbf.newDocumentBuilder(); 
Document doc = db.parse(is);` 

И это ошибка:

Content is not allowed in prolog. 
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:256)   at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:345) 
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:121) 
at com.nicolasekhoury.IHQuotes.IHQuotes.main(IHQuotes.java:28) 

Что я должен делать?

+0

Сделали вы какого-либо прогресса по этому вопросу? Подумайте о том, чтобы добавить больше деталей, если нет, или принять ответ, если он решит ваш вопрос. – hielsnoppe

ответ

0

Доступ к mentioned resource дает результат, похожий на этот:

You are fairminded, just and loving. 

[fortune] http://iheartquotes.com/fortune/show/46886 

Это не XML, так как это не well-formed.

То, что я думаю, вы должны делать, зависит. Если это только для обучения, найдите настоящий источник XML (например, your Stack Overflow user feed) и поиграйте с ним. Если вам нужно работать именно с этим источником данных, тогда найдите что-то еще, кроме XML.

Я только что нашел, что они предлагают HTML, который не является XML, но при определенных обстоятельствах может работать с парсером XML. Читайте their docs и попытайтесь получить доступ к http://www.iheartquotes.com/api/v1/random?format=html, который даст вам результат, похожий на этот:

<html> 
<head> 
<title>I Heart Quotes - Random Quote Widget</title> 
<style type="text/css">/* ... */</style> 
</head> 
<body> 
<table> 
<tr> 
<td> 
<div class="rbroundbox"> 
    <div class="rbtop"><div></div></div> 
      <div class="rbcontent"> 
<a target="_parent" 
    href='http://www.iheartquotes.com/fortune/show/halleys_comet_it_came_we_saw_we_drank'> 
Halley's Comet: It came, we saw, we drank. 
</a> 
<div class="source"> 
<a target="_parent" 
    href="http://www.iheartquotes.com/fortune/rand?source=codehappy">[codehappy quote]</a> 
</div> 
</div><!-- /rbcontent --> 
    <div class="rbbot"><div></div></div> 
    </div><!-- /rbroundbox --> 
</td></tr></table> 
</body> 
</html> 
Смежные вопросы