0

Web サイトから抽出したコンテンツから html タグを削除する方法を試していました。

完全な html タグのようなインスタンスが含まれる場合があります<a href="\testlink"> tst</a>

または のような壊れたもの, 完全なタグを削除する方法を思いついた. javascript または jquery (正規表現の方法) を使用して部分的なタグを削除できますか<div class="testClass" ???class="testClass">

完全なタグを削除するために使用したコードはreplace(/<(?:.|\n)*?>/gm, '')

4

1 に答える 1

0

これは、高級言語であっても正規表現を使用して行うのは非常に困難です。ただし、html を現在の DOM や非表示の iframe などに挿入することはできます。次に、「ノード ウォーカー」を構築して DOM ツリーをたどり、HTML ノードの「内部テキスト」を収集します。DOM がそれらを表している限り、ネイティブの DOM-Parser を使用して必要なものを取得できます。

私はこれを一度行い、次のように機能しました:

var nodes = document.getElementsByTagName('BODY');
function nodeWalker(node) {
 if(!node.hasChildNodes()) {
  return;
 }

 for(var i=0; i<node.childNodes.length; i++) {
  // filter by node type == 3 equals TEXT_NODE
  if((node.childNodes[i].nodeType == 3) && node.childNodes[i].nodeValue.length > 0) {               
   // extract content in node.childNodes[i].nodeValue
  }
  // type == 1 equals ELEMENT_NODE
  else if(node.childNodes[ i ].nodeType == 1) {
   nodeWalker(node.childNodes[i]);
  }
 }
}

すべての可能なノード タイプについては、 http://www.w3schools.com/dom/dom_nodetype.aspを参照してください。

もう 1 つの方法は、AJAX とサーバー側の DOM-Parser を使用することです。

于 2012-08-04T09:44:07.690 に答える