2012-05-22 27 views
0

我想解析一個網頁,但是當我想要在頁面中獲得一段文字時。當我調用Jsoup.parse()和Jsoup.connect()。get()方法時,Jsoup給我一個錯誤的Document。爲什麼JSoup解析錯了我的HTML代碼?

這是一個網頁和我的代碼。文檔var有一個錯誤的DOM。

Document doc1 = Jsoup.parse("<p class=\"texto\"><p>El concurso fotogr&aacute;fico internacional <em>Earth and Sky Photo Contest</em> ya tiene <a href=\"http://www.twanight.org/newTWAN/index.asp\" target=\"_blank\">ganadores</a> en su tercera edici&oacute;n. Bajo el tema &ldquo;La Importancia del cielo oscuro&rdquo;, las fotos galardonadas este a&ntilde;o son aquellas que mejor transmiten la belleza de un cielo estrellado y el problema de la contaminaci&oacute;n lum&iacute;nica. Como recuerdan los organizadores, hoy d&iacute;a el exceso de luz artificial en las ciudades hace que las estrellas desaparezcan del cielo urbano. Esta foto del cometa Lovejoy sobre Australia, de Jia Hao, se hizo con el primer premio en la categor&iacute;a \"Belleza del Cielo Nocturno\".</p></p>"); 

String summary = doc1.select("p.texto p").text(); 

的DOC1變量的結果是:

<html> 
    <head></head> 
    <body> 
    <p class="texto"></p> 
    <p>El concurso fotogr&aacute;fico internacional <em>Earth and Sky Photo Contest</em> ya tiene <a href="http://www.twanight.org/newTWAN/index.asp" target="_blank">ganadores</a> en su tercera edici&oacute;n. Bajo el tema 「La Importancia del cielo oscuro」, las fotos galardonadas este a&ntilde;o son aquellas que mejor transmiten la belleza de un cielo estrellado y el problema de la contaminaci&oacute;n lum&iacute;nica. Como recuerdan los organizadores, hoy d&iacute;a el exceso de luz artificial en las ciudades hace que las estrellas desaparezcan del cielo urbano. Esta foto del cometa Lovejoy sobre Australia, de Jia Hao, se hizo con el primer premio en la categor&iacute;a &quot;Belleza del Cielo Nocturno&quot;.</p> 
    <p></p> 
    </body> 
</html> 

難道我做錯了什麼?

+0

您的HTML無效。使用驗證服務,如http://validator.w3.org/來檢查。 – Rajesh

回答

0

如果您指的是<html>和<正文>標籤,這只是Jsoup包裝你的片段在一個適當的文件的外殼。

你的起點但是XML:

<p class="texto"> 
    <p> 
     El concurso fotogr&aacute;fico internacional <em>Earth and Sky Photo Contest</em> ya tiene <a href="http://www.twanight.org/newTWAN/index.asp" target="_blank">ganadores</a> en su tercera edici&oacute;n. Bajo el tema &ldquo;La Importancia del cielo oscuro&rdquo;, las fotos galardonadas este a&ntilde;o son aquellas que mejor transmiten la belleza de un cielo estrellado y el problema de la contaminaci&oacute;n lum&iacute;nica. Como recuerdan los organizadores, hoy d&iacute;a el exceso de luz artificial en las ciudades hace que las estrellas desaparezcan del cielo urbano. Esta foto del cometa Lovejoy sobre Australia, de Jia Hao, se hizo con el primer premio en la categor&iacute;a "Belleza del Cielo Nocturno". 
    </p> 
</p> 

包含嵌套 <p>元素 - 這有效的HTML & JSoup會爲您解決問題。嵌套段落詳細解釋here - 簡而言之 - 它們是自動關閉的,導致您的DOM與預期不同。

考慮將外部<p>轉換成<範圍>並且您應該沒問題。