【问题标题】:Jsoup.parse().body().getAllElements() doubles tagsJsoup.parse().body().getAllElements() 双打标签
【发布时间】:2018-09-05 20:37:18
【问题描述】:

这个JSoup有什么理由把body标签的内容加倍吗?

public static void main(String[] args) {
    Jsoup.parse(myHtmlString).body().getAllElements()
}

这确实发生在这段 html 代码中:

<html>
 <head> 
  <style> p{margin-bottom:0px;margin-top:0px;} body{font-family:Arial;font-size:10pt;} </style> 
 </head> 
 <body> 
  <div class="wordsection1"> 
   <p class="msonormal"> <span style="color:#1F497D;">&nbsp;</span></p> 
   <p class="msonormal"> <span style="color:#1F497D;">&nbsp;</span></p> 
   <div> 
    <div style="padding-top:3.0pt;padding-left:0cm;padding-right:0cm;padding-bottom:0cm;border-left-style:none;border-top-width:1.0pt;border-bottom-style:none;border-right-style:none;border-top-color:#B5C4DF;border-top-style:solid;"> 
     <p class="msonormal"> <b> <span tahoma","sans-serif";mso-fareast-language:de"="" style="font-size:10.0pt;">Von:</span></b><span tahoma","sans-serif";mso-fareast-language:de"="" style="font-size:10.0pt;"> Uasdsaa Aasdsaa [mailto:bullet1@left.de] <br><b>Gesendet:</b> Dienstag, 6. August 2013 08:59<br><b>An:</b> Helmut Grashoff (dsfaasas@gmbh.de)<br><b>Betreff:</b> erster Test f&uuml;r die 2.2.1 (mit HTML)</span></p> 
    </div> 
   </div> 
   <p class="msonormal">&nbsp;</p> 
   <p class="msonormal">Erst schauen wir mal, ob die Mail &uuml;berhaupt ankommt.</p> 
   <p class="msonormal">&nbsp;</p> 
   <p class="msonormal">Und <i> <u>gleichzeitig</u></i> <span style="font-size:18.0pt;">spiele</span> ich noch ein <span style="color:#31859C;">wenig </span> <span style="font-family:Algerian;">mit dieser Zeile</span></p> 
   <p class="msonormal">&nbsp;</p> 
   <p class="msonormal"> <span mso-fareast-language="DE">Mit freundlichen Gruessen</span></p> 
   <p class="msonormal"> <span mso-fareast-language="DE">&nbsp;</span></p> 
   <p class="msonormal"> <span mso-fareast-language="DE" style="color:#31849B;">Uasdsaa Aasdsaa</span></p> 
   <p class="msonormal"> <span mso-fareast-language="DE" style="font-size:9.0pt;">Iasdsaa-Sasdsaa</span></p> 
   <p class="msonormal"> <span mso-fareast-language="DE">&nbsp;</span></p> 
   <p class="msonormal"> <span verdana","sans-serif";mso-fareast-language:de"="">asdsaa</span></p> 
   <p class="msonormal"> <span verdana","sans-serif";mso-fareast-language:de"="">asdsaa</span></p> 
   <p class="msonormal"> <span verdana","sans-serif";mso-fareast-language:de"="">56218 M&uuml;lheim-K&auml;rlich</span></p> 
   <p class="msonormal"> <span mso-fareast-language="DE">&nbsp;</span></p> 
   <p class="msonormal"> <span mso-fareast-language="DE">&nbsp;</span></p> 
   <p class="msonormal">&nbsp;</p> 
  </div> 
 </body>
</html>

以上解析方式的结果,并不是说这里只是body部分的内容:

<body> 
 <div class="wordsection1"> 
  <p class="msonormal"> <span style="color:#1F497D;">&nbsp;</span></p> 
  <p class="msonormal"> <span style="color:#1F497D;">&nbsp;</span></p> 
  <div> 
   <div style="padding-top:3.0pt;padding-left:0cm;padding-right:0cm;padding-bottom:0cm;border-left-style:none;border-top-width:1.0pt;border-bottom-style:none;border-right-style:none;border-top-color:#B5C4DF;border-top-style:solid;"> 
    <p class="msonormal"> <b> <span tahoma","sans-serif";mso-fareast-language:de"="" style="font-size:10.0pt;">Von:</span></b><span tahoma","sans-serif";mso-fareast-language:de"="" style="font-size:10.0pt;"> Uasdsaa Aasdsaa [mailto:bullet1@left.de] Br2nL<b>Gesendet:</b> Dienstag, 6. August 2013 08:59Br2nL<b>An:</b> Helmut Grashoff (asdafsdf@gmbh.de)Br2nL<b>Betreff:</b> erster Test f&uuml;r die 2.2.1 (mit HTML)</span></p> 
   </div> 
  </div> 
  <p class="msonormal">&nbsp;</p> 
  <p class="msonormal">Erst schauen wir mal, ob die Mail &uuml;berhaupt ankommt.</p> 
  <p class="msonormal">&nbsp;</p> 
  <p class="msonormal">Und <i> <u>gleichzeitig</u></i> <span style="font-size:18.0pt;">spiele</span> ich noch ein <span style="color:#31859C;">wenig </span> <span style="font-family:Algerian;">mit dieser Zeile</span></p> 
  <p class="msonormal">&nbsp;</p> 
  <p class="msonormal"> <span mso-fareast-language="DE">Mit freundlichen Gruessen</span></p> 
  <p class="msonormal"> <span mso-fareast-language="DE">&nbsp;</span></p> 
  <p class="msonormal"> <span mso-fareast-language="DE" style="color:#31849B;">Uasdsaa Aasdsaa</span></p> 
  <p class="msonormal"> <span mso-fareast-language="DE" style="font-size:9.0pt;">Iasdsaa-Sasdsaa</span></p> 
  <p class="msonormal"> <span mso-fareast-language="DE">&nbsp;</span></p> 
  <p class="msonormal"> <span verdana","sans-serif";mso-fareast-language:de"="">asdsaa</span></p> 
  <p class="msonormal"> <span verdana","sans-serif";mso-fareast-language:de"="">asdsaa</span></p> 
  <p class="msonormal"> <span verdana","sans-serif";mso-fareast-language:de"="">56218 M&uuml;lheim-K&auml;rlich</span></p> 
  <p class="msonormal"> <span mso-fareast-language="DE">&nbsp;</span></p> 
  <p class="msonormal"> <span mso-fareast-language="DE">&nbsp;</span></p> 
  <p class="msonormal">&nbsp;</p> 
 </div>  
</body>
<div class="wordsection1"> 
 <p class="msonormal"> <span style="color:#1F497D;">&nbsp;</span></p> 
 <p class="msonormal"> <span style="color:#1F497D;">&nbsp;</span></p> 
 <div> 
  <div style="padding-top:3.0pt;padding-left:0cm;padding-right:0cm;padding-bottom:0cm;border-left-style:none;border-top-width:1.0pt;border-bottom-style:none;border-right-style:none;border-top-color:#B5C4DF;border-top-style:solid;"> 
   <p class="msonormal"> <b> <span tahoma","sans-serif";mso-fareast-language:de"="" style="font-size:10.0pt;">Von:</span></b><span tahoma","sans-serif";mso-fareast-language:de"="" style="font-size:10.0pt;"> Uasdsaa Aasdsaa [mailto:bullet1@left.de] Br2nL<b>Gesendet:</b> Dienstag, 6. August 2013 08:59Br2nL<b>An:</b> Helmut Grashoff (asfasd@gmbh.de)Br2nL<b>Betreff:</b> erster Test f&uuml;r die 2.2.1 (mit HTML)</span></p> 
  </div> 
 </div> 
 <p class="msonormal">&nbsp;</p> 
 <p class="msonormal">Erst schauen wir mal, ob die Mail &uuml;berhaupt ankommt.</p> 
 <p class="msonormal">&nbsp;</p> 
 <p class="msonormal">Und <i> <u>gleichzeitig</u></i> <span style="font-size:18.0pt;">spiele</span> ich noch ein <span style="color:#31859C;">wenig </span> <span style="font-family:Algerian;">mit dieser Zeile</span></p> 
 <p class="msonormal">&nbsp;</p> 
 <p class="msonormal"> <span mso-fareast-language="DE">Mit freundlichen Gruessen</span></p> 
 <p class="msonormal"> <span mso-fareast-language="DE">&nbsp;</span></p> 
 <p class="msonormal"> <span mso-fareast-language="DE" style="color:#31849B;">Uasdsaa Aasdsaa</span></p> 
 <p class="msonormal"> <span mso-fareast-language="DE" style="font-size:9.0pt;">Iasdsaa-Sasdsaa</span></p> 
 <p class="msonormal"> <span mso-fareast-language="DE">&nbsp;</span></p> 
 <p class="msonormal"> <span verdana","sans-serif";mso-fareast-language:de"="">asdsaa</span></p> 
 <p class="msonormal"> <span verdana","sans-serif";mso-fareast-language:de"="">asdsaa</span></p> 
 <p class="msonormal"> <span verdana","sans-serif";mso-fareast-language:de"="">56218 M&uuml;lheim-K&auml;rlich</span></p> 
 <p class="msonormal"> <span mso-fareast-language="DE">&nbsp;</span></p> 
 <p class="msonormal"> <span mso-fareast-language="DE">&nbsp;</span></p> 
 <p class="msonormal">&nbsp;</p> 
</div>
<p class="msonormal"> <span style="color:#1F497D;">&nbsp;</span></p>
<span style="color:#1F497D;">&nbsp;</span>
<p class="msonormal"> <span style="color:#1F497D;">&nbsp;</span></p>
<span style="color:#1F497D;">&nbsp;</span>
<div> 
 <div style="padding-top:3.0pt;padding-left:0cm;padding-right:0cm;padding-bottom:0cm;border-left-style:none;border-top-width:1.0pt;border-bottom-style:none;border-right-style:none;border-top-color:#B5C4DF;border-top-style:solid;"> 
  <p class="msonormal"> <b> <span tahoma","sans-serif";mso-fareast-language:de"="" style="font-size:10.0pt;">Von:</span></b><span tahoma","sans-serif";mso-fareast-language:de"="" style="font-size:10.0pt;"> Uasdsaa Aasdsaa [mailto:bullet1@left.de] Br2nL<b>Gesendet:</b> Dienstag, 6. August 2013 08:59Br2nL<b>An:</b> Helmut Grashoff (asdffasd@gmbh.de)Br2nL<b>Betreff:</b> erster Test f&uuml;r die 2.2.1 (mit HTML)</span></p> 
 </div> 
</div>
<div style="padding-top:3.0pt;padding-left:0cm;padding-right:0cm;padding-bottom:0cm;border-left-style:none;border-top-width:1.0pt;border-bottom-style:none;border-right-style:none;border-top-color:#B5C4DF;border-top-style:solid;"> 
 <p class="msonormal"> <b> <span tahoma","sans-serif";mso-fareast-language:de"="" style="font-size:10.0pt;">Von:</span></b><span tahoma","sans-serif";mso-fareast-language:de"="" style="font-size:10.0pt;"> Uasdsaa Aasdsaa [mailto:bullet1@left.de] Br2nL<b>Gesendet:</b> Dienstag, 6. August 2013 08:59Br2nL<b>An:</b> Helmut Grashoff (asdfsad@gmbh.de)Br2nL<b>Betreff:</b> erster Test f&uuml;r die 2.2.1 (mit HTML)</span></p> 
</div>
<p class="msonormal"> <b> <span tahoma","sans-serif";mso-fareast-language:de"="" style="font-size:10.0pt;">Von:</span></b><span tahoma","sans-serif";mso-fareast-language:de"="" style="font-size:10.0pt;"> Uasdsaa Aasdsaa [mailto:bullet1@left.de] Br2nL<b>Gesendet:</b> Dienstag, 6. August 2013 08:59Br2nL<b>An:</b> Helmut Grashoff (asdfsdfa@gmbh.de)Br2nL<b>Betreff:</b> erster Test f&uuml;r die 2.2.1 (mit HTML)</span></p>
<b> <span tahoma","sans-serif";mso-fareast-language:de"="" style="font-size:10.0pt;">Von:</span></b>
<span tahoma","sans-serif";mso-fareast-language:de"="" style="font-size:10.0pt;">Von:</span>
<span tahoma","sans-serif";mso-fareast-language:de"="" style="font-size:10.0pt;"> Uasdsaa Aasdsaa [mailto:bullet1@left.de] Br2nL<b>Gesendet:</b> Dienstag, 6. August 2013 08:59Br2nL<b>An:</b> Helmut Grashoff (asdfsdf@gmbh.de)Br2nL<b>Betreff:</b> erster Test f&uuml;r die 2.2.1 (mit HTML)</span>
<b>Gesendet:</b>
<b>An:</b>
<b>Betreff:</b>
<p class="msonormal">&nbsp;</p>
<p class="msonormal">Erst schauen wir mal, ob die Mail &uuml;berhaupt ankommt.</p>
<p class="msonormal">&nbsp;</p>
<p class="msonormal">Und <i> <u>gleichzeitig</u></i> <span style="font-size:18.0pt;">spiele</span> ich noch ein <span style="color:#31859C;">wenig </span> <span style="font-family:Algerian;">mit dieser Zeile</span></p>
<i> <u>gleichzeitig</u></i>
<u>gleichzeitig</u>
<span style="font-size:18.0pt;">spiele</span>
<span style="color:#31859C;">wenig </span>
<span style="font-family:Algerian;">mit dieser Zeile</span>
<p class="msonormal">&nbsp;</p>
<p class="msonormal"> <span mso-fareast-language="DE">Mit freundlichen Gruessen</span></p>
<span mso-fareast-language="DE">Mit freundlichen Gruessen</span>
<p class="msonormal"> <span mso-fareast-language="DE">&nbsp;</span></p>
<span mso-fareast-language="DE">&nbsp;</span>
<p class="msonormal"> <span mso-fareast-language="DE" style="color:#31849B;">Uasdsaa Aasdsaa</span></p>
<span mso-fareast-language="DE" style="color:#31849B;">Uasdsaa Aasdsaa</span>
<p class="msonormal"> <span mso-fareast-language="DE" style="font-size:9.0pt;">Iasdsaa-Sasdsaa</span></p>
<span mso-fareast-language="DE" style="font-size:9.0pt;">Iasdsaa-Sasdsaa</span>
<p class="msonormal"> <span mso-fareast-language="DE">&nbsp;</span></p>
<span mso-fareast-language="DE">&nbsp;</span>
<p class="msonormal"> <span verdana","sans-serif";mso-fareast-language:de"="">asdsaa</span></p>
<span verdana","sans-serif";mso-fareast-language:de"="">asdsaa</span>
<p class="msonormal"> <span verdana","sans-serif";mso-fareast-language:de"="">asdsaa</span></p>
<span verdana","sans-serif";mso-fareast-language:de"="">asdsaa</span>
<p class="msonormal"> <span verdana","sans-serif";mso-fareast-language:de"="">56218 M&uuml;lheim-K&auml;rlich</span></p>
<span verdana","sans-serif";mso-fareast-language:de"="">56218 M&uuml;lheim-K&auml;rlich</span>
<p class="msonormal"> <span mso-fareast-language="DE">&nbsp;</span></p>
<span mso-fareast-language="DE">&nbsp;</span>
<p class="msonormal"> <span mso-fareast-language="DE">&nbsp;</span></p>
<span mso-fareast-language="DE">&nbsp;</span>
<p class="msonormal">&nbsp;</p>

我正在使用 Java 6 和 Jsoup 1.7.2。

【问题讨论】:

    标签: java html outlook jsoup


    【解决方案1】:

    它明显而完美。

    事实上,它不会翻倍,而是重复 Elements 的次数与其深度 w.r.t 到参考 Node 的次数相同

    body 下的每个Node 都被视为Element,包括body,直到它到达叶子Node

    如果你考虑文本&lt;b&gt;Betreff:&lt;/b&gt;,它重复了7次,它比根(&lt;body&gt;)低7级,也是树中深度更大的孩子。

    body &gt; div &gt;div &gt; div &gt; p &gt; span &gt;b

    【讨论】:

      猜你喜欢
      • 2013-02-04
      • 1970-01-01
      • 2016-05-06
      • 1970-01-01
      • 1970-01-01
      • 2011-04-20
      • 1970-01-01
      • 1970-01-01
      • 2011-11-23
      相关资源
      最近更新 更多