2010-11-16 47 views
10

Tôi đang cố gắng phân tích chuỗi XML bằng libxmljs (https://github.com/polotek/libxmljs). Tôi đang gặp một số vấn đề. Tôi cần phải áp dụng logic cho những gì tôi đang phân tích cú pháp và trả lại dựa trên những gì được xác định và những gì không. Bởi vì điều này tôi không thấy một trình phân tích cú pháp kiểu SAX là một tùy chọn hợp lệ.Phân tích cú pháp XML Libxmljs (Node.js)

Tôi sẵn sàng xem xét các giải pháp thay thế khác nếu tôi có thể đạt được những gì tôi đang tìm kiếm. Việc có thể chọn các yếu tố như DOMParser xmlDoc.getElementsById('firstName')[0].childNodes[0].nodeValue sẽ thật tuyệt vời ...

+0

Tôi đoán README tập trung vào phân tích cú pháp sax. Hầu hết mọi người sử dụng công cụ DOM mặc dù. Tôi sẽ cập nhật nó để làm rõ rằng DOM là có thể và đưa ra các ví dụ. – Marco

Trả lời

17

libxmljs hỗ trợ phân tích kiểu DOM cũng như SAX.

var xmlDoc = libxmljs.parseXmlString('<item><data id="firstName">Your Name</data></item>'); 
var xmlDoc2 = libxmljs.parseXmlFile('mydata.xml'); 

API là tùy chỉnh và không tuân theo thông số W3C/trình duyệt (trong danh sách của tôi). Bạn sẽ muốn sử dụng xpath để truy vấn tài liệu cho nội dung bạn muốn.

xmlDoc.find("//[@id='firstName']")[0].childNodes()[0].text() 

Lưu ý rằng childNodes và văn bản là hàm gọi. Hãy xem các tài liệu.

https://github.com/polotek/libxmljs/wiki/Element

Theo như tôi biết, libxmljs và jsdom là hai thư viện có triển khai DOM phong nha.

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