一般的な考え方は、その情報を抽出するために、それを横断し、HTMLの文字列を取る文書(dom elementsの木)にそれを解析することです。
リンクだった場合:
<a href="/browse/post/something/"><b>something</b> else</a>
まずその後、アンカータグを見つけるためにツリーをトラバース:
anchor.textContent // returns "something else"
ある場合でも、要素からテキストを抽出することは簡単ですその下のツリーの他の要素にもテキストが含まれています。これは正規表現の例よりも堅牢です。誰かがクラス属性をアンカーに追加したとすると、受け入れられた答えの正規表現はアンカータグに一致しなくなります。しかし、トラバーサルベースのソリューションはまだ動作します。単純なケースで
、あなたはDIVを作成することができ、それを横断した後、あなたのHTML文字列にinnerHTML
を設定します。この
var html = '<p><a href="/browse/post/">Lorem</p> <p>Ipsum</p></a>';
var div = document.createElement("div");
div.innerHTML = html;
var anchors = div.getElementsByTagName("a");
for (var i = 0; i < anchors.length; i++) {
console.log(anchors[i].textContent);
}
より洗練されたバージョンがjQuery(string) functionにパッケージされています。
var html = '<div><p><a href="/browse/post/">Lorem</p> <p>Ipsum</p></a></div>';
jQuery(html).find("a").each(function() {
console.log(jQuery(this).text());
});
ライブ例:http://jsfiddle.net/ygcFM/
ます。http:// stackoverflowの。com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – asawyer
私は常にリテラル正規表現を好んでいます。 ''これは文字列 ".match(/ match me/i)' – tomfumb
です。このようなことを達成するためにXMLパーサを使用する方法についてもっと知りたいと思っています。私は基本的に、既存のスクリプトを修正して、必要なものを達成しようとしています。このような** ** **方法を行うgreasemonkeyスクリプトの良い例はありますか? – spazzed