2017-11-07 1 views
0

Ich habe die folgende Antwort von einem HTTP erhalten.Wie entferne ich die <html> Tag von String?

<HTML><BODY>Now='11/7/2017 4:08:34 PM' Process='chrome' SessionID=1 User='Local\User' Culture='en-US'<BR></BODY></HTML> 

Ich brauche die Daten dort im Körper in ein JSON-Objekt zu bekommen. Also habe ich versucht, HTML-Tags zu entfernen. Obwohl es anders ist, habe ich versucht, wie dort in dieser solution. Es funktioniert für HTML-Tags, aber nicht für selbst.

Ich habe auch als unten versucht:

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; 

Es gibt die folgenden Fehler:

Uncaught DOMException: Failed to set the 'outerHTML' property on 'Element': This element has no parent node. 

Obwohl ich weiß, dass es mit regex erreicht werden kann, will ich es tun, ohne regex.

Konnte jemand es auflösen?

+1

Warum möchten Sie nicht eine Regex verwenden? Kannst du es mit String.replace 'hässlich' machen? –

+0

Nach meinem Verständnis haben Ihr Hauptproblem und die zur Verfügung gestellte Lösung nichts gemeinsam. – revo

Antwort

0

Verwenden DOMParser() die Zeichenfolge von HTML in einen DOM zu konvertieren:

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);

+0

Danke, @Quentin, das ist was ich genau will. :) –

-2

nur ein einfaches codepen erstellt. Bitte versuchen Sie, es wird funktionieren:

https://codepen.io/vishalkaului/pen/rYMGoy 

+6 und - 16 sind die Inhalte vor dem Start <BODY> Tag auszuschließen und nach dem Schließen </BODY>-Tag. Es enthält sowohl den Ausschluss für die <BODY></BODY> Tags.

(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)); 
})() 

Hinweis: Diese Lösung eignet sich nur, wenn Sie wissen, dass die Struktur der Antwort gleich ist. Inhalt kann variieren, aber die Tags sind vor und nach den Antwortdaten identisch.

+0

Bitte [vermeiden Sie Link nur Antworten] (http://meta.stackoverflow.com/tags/link-only-answers/info). Antworten, die "kaum mehr als ein Link zu einer externen Website sind" [möglicherweise gelöscht] (http://stackoverflow.com/help/deleted-answers) – Quentin

+0

Bitte haben Sie etwas Geduld, ich war immer noch mitten in der Veröffentlichung der kompletten –

+0

Patience? Weil Sie zu ungeduldig waren, Ihre Antwort zu beenden, bevor Sie auf die Schaltfläche "Post Your Answer" klicken? – Quentin

Verwandte Themen