2014-12-08 109 views
0

我有以下字符串:解析字符串DOM

var str = ‘<script type="text/javascript" src="js/test.js"></script><link rel="stylesheet" type="text/css" href="css/style.css" />’ 

我如何改造這DOM。 我試過用DOMParser這樣的東西。

var parser = new DOMParser() 
var el = parser.parseFromString(str, "text/xml"); 
console.log(el) 

但是,出現錯誤。這是輸出。

#document 
<script type="text/javascript" src="file.js"> 
    <parsererror style="display: block; white-space: pre; border: 2px solid #c77; padding: 0 1em 0 1em; margin: 1em; background-color: #fdd; color: black"> 
     <h3>This page contains the following errors:</h3> 
     <div style="font-family:monospace;font-size:12px">error on line 1 at column 27: Extra content at the end of the document 
     </div> 
     <h3>Below is a rendering of the page up to the first error.</h3> 
    </parsererror> 
</script> 

當顯示輸出時,css也沒有被解析。

回答

0

你的單引號是錯的?請仔細檢查。

我認爲你可以使用jQueryMootools輕鬆傳輸:

var s = '<script type="text/javascript" src="js/test.js"></script><link rel="stylesheet" type="text/css" href="css/style.css" />'; 
var v = $(s); 
1

看來DOMParser只能分析一個元素。

所以此工程:

new DOMParser().parseFromString("<div/>", "text/xml") 

但這並不:

new DOMParser().parseFromString("<div/><div/>", "text/xml") 

那麼你很可能通過將標籤圍繞整個事情解決您的例子。

+0

XML文檔只能包含一個文檔元素節點。結果是一個文檔對象,所以它只能包含一個根元素節點。第二個是「文檔末尾的額外內容」。 – ThW 2014-12-08 09:57:56