簡體   English   中英

從字符串中刪除部分html標簽

[英]removing partial html tags from string

我正在經歷從網站提取的內容刪除HTML標簽的方法。

它可能包含完整的html標簽<a href="\\testlink"> tst</a>類的實例。

或像<div class="testClass"class="testClass"> <div class="testClass"損壞對象,Ive提出了一種刪除完整標簽的方法,可以使用javascript或jquery(正則表達式)刪除部分標簽嗎???

我用來刪除完整標簽的代碼是replace(/<(?:.|\\n)*?>/gm, '')

即使使用高級語言,使用正則表達式也很難做到這一點。 但是您可以將html注入當前的DOM中,也可以注入到隱藏的iframe中。 然后,您將構建一個“節點遍歷器”以沿DOM樹下移並收集HTML節點的“內部文本”。 只要DOM代表它們,您就可以使用本機DOM分析器獲得所需的內容。

我做了一次,它的工作原理是這樣的:

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

另一種方法是使用AJAX和服務器端DOM分析器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM