0
HtmlPage 객체에 저장 한 웹 페이지가 있습니다. XPath를 적용한 결과가 목록에 저장됩니다. 내가 관찰 이제 어떻게HtmlElement가 자식 노드를 표시하지 않지만 HtmlElement.asXml() 메서드는
List<?> items = null;
items = page.getByXPath("//div[contains(@class,'search-result-cards')]/div[contains(@class,'listContainer')]");
는 내가는 HTMLElement 사용하여 이러한 항목을 반복 할 때, 나는 클래스 listContainer이 포함되어 있지만 자식 노드 div 태그의 바로 첫 번째 라인을 얻을 수 있다는 것입니다. 그러나 he.asXml() 메서드를 사용할 때 하위 노드에 대한 완전한 정보도 얻을 수 있습니다. 여기
for(HtmlElement he : (List<HtmlElement>) items)
{
br.write("Printing just the element ::: "+he);
br.write(he.asXml());
}
,
br
파일 출력을 작성하는 데 사용되는 BufferedWriter의 개체이다. 문제는 HtmlElement 객체에서만
he.asXml()
메서드를 호출 한 후에 오는 모든 정보를 원한다는 것입니다. 가능한가? 작동하지 않는 HtmlElement 객체에 직접 문자열을 typecasting했습니다. 아무도 도와 줄 수 있습니까?
Output
Printing just the element ::: HtmlDivision[<div class="listContainer" data-ptitle="3139847000" data-reactid="402">]
he.asXml() Output
<div class="listContainer" data-ptitle="3139847000" data-reactid="402">
<div class="imageContainer" data-reactid="403">
<div class="prodInfoContainer" data-reactid="406">
.
.
.
도트는 출력이 매우 크기 때문에 이러한 노드가 계속 진행됨을 나타냅니다. 내가 언급하지 않은 다른 정보가 필요한지 알려주십시오.
이 있으며, toString()이 메소드 요소의 내용을 반환하지 않는 것 같다 . 왜 그게 문제가됩니까? –
그게 문제가 아니에요, 내 코드의 다음 세그먼트는 입력이 asXml 메서드의 출력이되어야하지만 HtmlElement 유형에서만 예상되는이 html 요소 개체를 구문 분석에 사용합니다. –
"HtmlElement 유형에서만 사용 하시겠습니까?" –