2014-12-08 3 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

Ваши одиночные кавычки ошибочны? Пожалуйста, проверьте дважды.

Я думаю, что вы можете использовать jQuery или Mootools легко переносить:

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

Смежные вопросы