2012-07-09 46 views
18

Tôi đang gặp sự cố khi cố gắng sử dụng DOMParser trong mã js của mình. Trong mã của tôi, tôi lấy một tệp xml qua phản hồi xà phòng xmlhttp.responseText. Tôi muốn để có thể truy cập vào phần tử của nó ở định dạng JSON, do đó, mã của tôi trông giống như:Đang cố gắng sử dụng DOMParser với nút js

var xml = new DOMParser(); 
xml = xml.parseFromString(xmlhttp.responseText, 'text/xml'); 
var result = xmlToJson(xml); 

tôi nhận được thông báo lỗi này: ReferenceError: DOMParser không được định nghĩa

Edit: Liên kết này hasn' t làm việc cho tôi vì javascript của tôi không có trong trang HTML, vì nó là một tệp node.js. JavaScript DOMParser access innerHTML and other properties

Trả lời

12

Không có DOMParser trong node.js, đó là điều trình duyệt. Bạn có thể thử bất kỳ các module mặc dù:

https://github.com/joyent/node/wiki/modules#wiki-parsers-xml

+1

Tôi biết chủ đề này là cũ, nhưng ở đây nó đi. Điều gì về jquery cho nút? Cuộc gọi ajax với dataType xml sẽ nhận được phản hồi xml dom. – amenadiel

+3

Liên kết không hoạt động nữa. – Akkumulator

-1
var DOMParser = require('xmldom').DOMParser; 
var doc = new DOMParser().parseFromString(
    '<xml xmlns="a" xmlns:c="./lite">\n'+ 
     '\t<child>test</child>\n'+ 
     '\t<child></child>\n'+ 
     '\t<child/>\n'+ 
    '</xml>' 
    ,'text/xml'); 
3

Bạn có thể sử dụng thực hiện Node của DOMParser, chẳng hạn như xmldom. Điều này sẽ cho phép bạn truy cập DOMParser bên ngoài trình duyệt. Ví dụ:

var DOMParser = require('xmldom').DOMParser; 
var parser = new DOMParser(); 
var document = parser.parseFromString('Your XML String', 'text/xml'); 
+2

nó không hoạt động - chỉ cần nhổ rất nhiều lỗi "thực thể không tìm thấy" khi cố gắng phân tích cú pháp một trang html – DataGreed

+0

xmldom là một thư viện cũ. Không hỗ trợ truy vấnSelector – benmcdonald

+0

'xmldom' là một thay thế kém cho DOMParser. Nó không phân tích chính xác các phần tử ngang hàng. –

Các vấn đề liên quan