1. ホーム
  2. ジャバスクリプト

[解決済み】JSでHTML文字列をパースする

2022-03-26 09:06:08

質問

HTMLテキストを含む文字列をパースしたい。JavaScriptで行いたい。

を試してみました。 Pure JavaScript HTML Parser ライブラリ しかし、それは文字列からではなく、私の現在のページのHTMLをパースしているようです。なぜなら、以下のコードを試すと、私のページのタイトルが変わってしまうからです。

var parser = new HTMLtoDOM("<html><head><title>titleTest</title></head><body><a href='test0'>test01</a><a href='test1'>test02</a><a href='test2'>test03</a></body></html>", document);

私の目標は、文字列と同じように読むHTMLの外部ページからリンクを抽出することです。

それを行うためのAPIをご存じですか?

どのように解決するのですか?

ダミーのDOM要素を作成し、そこに文字列を追加します。そうすると、他のDOM要素と同じように操作することができます。

var el = document.createElement( 'html' );
el.innerHTML = "<html><head><title>titleTest</title></head><body><a href='test0'>test01</a><a href='test1'>test02</a><a href='test2'>test03</a></body></html>";

el.getElementsByTagName( 'a' ); // Live NodeList of your anchor elements

編集:ファンを喜ばせるために、jQueryの回答を追加しました

var el = $( '<div></div>' );
el.html("<html><head><title>titleTest</title></head><body><a href='test0'>test01</a><a href='test1'>test02</a><a href='test2'>test03</a></body></html>");

$('a', el) // All the anchor elements