HTML ファイルのノードからテキストを抽出する必要があり、XPath と Javascript を使用しようとしています。
必要な条件は、テキストに特定の単語が含まれている必要があるということです。
次の html ファイルを例に取りましょう。
<html>
<body>
<p>
Hi, try to extract the word username here and here <b>username</b>
</p>
</body>
</html>
そして、次の式を使用して、「username」という単語を含むテキスト ノードからテキストを取得してみてください。
var search = document.evaluate('//*[contains(child::text(), \"username\")]/child::text()', document, null, XPathResult.ANY_TYPE, null);
検索を繰り返すと、目的の結果が見つかりましたが、不要なオブジェクトも見つかりました:
["Hi, try to extract the word username here and here", Text, "username"]
ここで、Text は、textContent が改行記号のみのオブジェクトです (私は Google Chrome コンソールを使用しています)。このオブジェクトはどこから来たのですか?
これらのオブジェクトを除外するより正確な XPath 式を教えてください。または、コードでそれらを除外する必要がありますか?
理想的な検索は次のとおりです。
["Hi, try to extract the word username here and here", "username"]
みんなありがとう!