java
  • jsoup
  • 2014-06-24 82 views 0 likes 
    0

    我使用Jsoup的parseBodyFragment方法將Java字符串轉換爲Jsoup Document對象:Jsoup parseBodyFragment不包括具有風格屬性顯示元素:無

    String trElem = "<tr>" 
           + " <td data-column-name='ID' style='display:none;'></td>" 
           + " <td data-column-name='Name'><input type='text' value='Jones'></td>" 
           + "</tr>" ; 
    Document doc = Jsoup.parseBodyFragment(trElem) ; 
    System.out.println ("\nJsoup doc is " + doc + "\n") ; 
    

    然而,第一<TD>元件從Document對象中排除通過parseBodyFragment返回,如下圖所示(我System.out.println的輸出):

    <html> 
        <head></head> 
        <body> 
        <input type="text" value="Jones" /> 
        </body> 
    </html> 
    

    我的問題:我怎麼能包括所有元素(包括那些與display:none和那些沒有)由parseBodyFragment返回的對象?

    回答

    1

    Jsoup試圖規範化解析的html。在這種情況下,它看不到任何標籤,因此它完全忽略了<tr>和<td>標籤。有兩個選項

    1. 添加<表> < /表>標籤

    2. 使用此Document doc = Jsoup.parse(trElem, "", Parser.xmlParser());

    +0

    我嘗試選項#1(上圖),和它的工作就好了。謝謝。 – user3134725

    相關問題