2017-09-06 5 views
0

나는이 HTML에서 일부 데이터를 발굴하기 위해 노력하고있어,
html로 다른 스팬 (Seems like valid html according to other stack over flow post)jsoup 범위

이렇게 표현

td > p > span 

반환 내부의 범위를 가지고 2 요소 (두 번째 요소에는 두 스팬이 있습니다)
이 방법이 있습니까? 이 예에서

는, 값이에 내가 관심입니다 03/26/17

<td width="414" style="width:310.25pt;border:none;border-bottom:solid #AEAAAA 1.0pt;padding:0in 5.4pt 0in 5.4pt;height:.3in"> 
    <p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height:normal"> 
&nbsp; 

     <span style="font-size:8.0pt;font-family:&quot;Arial&quot;,sans-serif;color:black">03/</span> 
     <span style="font-size:8.0pt;font-family:&quot;Arial&quot;,sans-serif">26<span style="color:black">/17</span> 
     </span> 
     <o:p/> 
    </p> 
</td> 

코드 :

protected String getSimpleValue(org.jsoup.nodes.Document doc,String selector) { 
    StringBuffer buff = new StringBuffer(); 

    try {   
     Elements result = doc.select(selector); 

     for (Element element : result) { 
      buff.append(element.ownText()+" "); 
      } 
    }catch(Exception ex) { 
     ex.printStackTrace(); 
    } 
return buff.toString(); 
} 
+1

질문은 무엇입니까? 너는 무엇을 기대하며 무엇을 얻 느냐? – luksch

답변

1

u 아래 코드를 시도해 볼 수 있습니다. 그것은 당신이 원하는 결과를 정확하게 줄 것입니다.

Element ele= document.select("p[class=MsoNormal]").get(0); 
String strdate = ele.text().replaceAll(" ", ""); 
System.out.println(strdate); 

설명 : U 직접 p, class="MsoNormal"의 요소를 작성하고 텍스트를 가져 오기위한 .text()를 사용할 수 있습니다. 거기에 어떤 공간이 오면 그걸로 .replaceAll(" ", "")을 사용할 수 있습니다. 희망이 도움이 될 것입니다.

귀하의 결과 :03/26/17

+1

@ user648026이 코드를 사용해 보셨습니까? –

1

"03 /".MsoNormal > span:nth-child(1) 인에 대한 선택과 "26/17"의 셀렉터는 .MsoNormal > span:nth-child(2)입니다.
당신은 그것을 here으로 볼 수 있습니다.