2010-11-16 12 views
10

Bir XML dizesini libxmljs (https://github.com/polotek/libxmljs) ile ayrıştırmaya çalışıyorum. Yine de bazı sorunlar yaşıyorum. Ben neyi tanımladığına ve neyin olmadığını belirlediğime göre mantığı uygulamalıyım. Bu nedenle SAX stili ayrıştırıcı geçerli bir seçenek görmüyorum.Ayrıştır XML Libxmljs (Node.js)

Aradığım şeyi başarabilirsem başka alternatiflere bakmaya hazırım. DOMParser xmlDoc.getElementsById('firstName')[0].childNodes[0].nodeValue gibi öğeleri seçebilmemiz harika olurdu ...

+0

README, sax ayrıştırma üzerinde odaklanan sanırım. Çoğu insan DOM malzemelerini kullanıyor. DOM'ın mümkün olduğunu ve örnekleri vermesini sağlamak için onu güncelleyeceğim. – Marco

cevap

17

libxmljs, DOM'ın yanı sıra SAX stili ayrıştırma özelliğini destekler.

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

API özeldir ve W3C/tarayıcı özelliklerini (listemde) izlemez. İstediğiniz içerik için belgeyi sorgulamak için xpath'i kullanmak isteyeceksiniz.

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

Çocuğun ve düğmelerin işlev çağrıları olduğuna dikkat edin. Dokümanlara bir göz atın.

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

olarak bildiğim kadarıyla, libxmljs ve jsdom iyi DOM uygulamaları olan iki kütüphane bulunmaktadır.