[英]How to strip the <html> Tag from string?
我從HTTP獲取以下響應。
<HTML><BODY>Now='11/7/2017 4:08:34 PM' Process='chrome' SessionID=1 User='Local\User' Culture='en-US'<BR></BODY></HTML>
我需要將正文中的數據獲取到JSON對象中。 因此,我嘗試刪除HTML標簽。 盡管有所不同,但我已經嘗試過,就像在該解決方案中一樣 。 它適用於HTML標記,但不適用於<html>
本身。
我也嘗試過如下:
var content = "<HTML><BODY>Now='11/7/2017 4:08:34 PM' Process='chrome' SessionID=1 User='Local\User' Culture='en-US'<BR></BODY></HTML>";
var tag = document.createElement("html");
tag.outerHtml = content;
它給出以下錯誤:
Uncaught DOMException: Failed to set the 'outerHTML' property on 'Element': This element has no parent node.
雖然我知道,它可以實現regex
,我想這樣做沒有regex
。
有人可以解決嗎?
使用DOMParser()
將HTML字符串轉換為DOM:
var html = `<HTML><BODY>Now='11/7/2017 4:08:34 PM' Process='chrome' SessionID=1 User='Local\\User' Culture='en-US'<BR></BODY></HTML>`; var parser = new DOMParser(); var html_dom = parser.parseFromString(html, "text/html"); var body = html_dom.querySelector("body"); var content = body.innerHTML; console.log(content);
剛剛創建了一個簡單的codepen
。 請嘗試,它將起作用:
https://codepen.io/vishalkaului/pen/rYMGoy
+6
和-16排除開始<BODY>
標記之前和結束</BODY>
標記之后的內容。 它同時包含<BODY></BODY>
標記的排除項。
(function () {
let serverResponse = "<HTML><BODY>Now='11/7/2017 4:08:34 PM'
Process='chrome' SessionID=1 User='Local\User' Culture='en-
US'<BR></BODY></HTML>";
console.log(serverResponse.substr(serverResponse.indexOf('<BODY>')+6,serverResponse.indexOf('</BODY>')-16));
})()
注意:僅當您知道響應的結構相同時,此解決方案才適用。 雖然,內容可以變化,但是響應數據前后的標簽相同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.