簡體   English   中英

如何剝離 <html> 從字符串標記?

[英]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.

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