私はHtmlPageオブジェクトに保存したWebページを持っています。私は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オブジェクトに直接文字列を型キャストしようとしました。誰でも助けてくれますか?
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()メソッドは、要素の内容を返さないようです。それはなぜ問題なのですか? –
これは問題ではありません。私のコードの次の部分では、このhtml要素オブジェクトを構文解析に使用しています。入力はasXmlメソッドの出力でなければなりませんが、HtmlElement型のみです。 –
「HtmlElementタイプのみ」とはどういう意味ですか? –