1

HtmlUnit を使用して Web サイトのソース コードを解析し、カメラのタイトルを抽出しています。ウェブサイトにはいくつかの異なるカメラが含まれており、すべてのカメラ タイトルのリストを作成する必要があります。以下は、ソース コード内のカメラの 1 つの例です (見やすくするためにカメラのタイトルを変更しました)。

<a href="/camera/p-SPM7903509713?prdNo=2" title="Camera Title" onclick="javascript:appendOmParams(this, 'SPM7903509713');">Camera Title</a>

HtmlUnit には getElementsByTitle() の行に沿った組み込み関数がないため、私が発見したばかりの XPath を使用する必要があると想定しています。上記の例でこれを行うにはどうすればよいですか? 私の試みはこれです:

final List<?> titles = webPage.getByXPath("//a[@title=*]");

ただし、これは機能しません。ロジックは、「a」が属性「title」を持っている限り、タイトルが何であるかは問題ではないということです。私はそれが欲しいので、アスタリスクを付けます。私がこれにどのようにアプローチできるか知っている人はいますか?

4

1 に答える 1

2

あなたは正しい表現に非常に近づいています。//a[@title]title 属性を持つすべてのリンクを検索するために使用します。述語は、何かを返す (空でない) 場合に true と評価され@title、現在のタグ内のすべてのタイトル属性を選択します。

すべてのタイトルを取得する場合は、//a/@title.

于 2013-10-15T15:45:59.553 に答える