XML 스트림 모듈과 함께 느리게 kml 파일을 구문 분석하고 관련 예제가 부족한 상태로 실행하려고합니다. 지금까지 내 코드가 있습니다.lazy.js 및 xml 스트림 구문 분석
var fs = require('fs');
var path = require('path');
var xmlStream = require('xml-stream');
var lazy = require('lazy.js')
var stream = fs.createReadStream('./Sindh.kml');
var xml = new xmlStream(stream);
var onlyEvents = function(e) {
if (e && e._events) {
return 1;
}
else {
return 0;
}
}
lazy(xml).filter(onlyEvents).take(20).each(function(e) {
console.log(e);
console.log('\n');
});
//xml.preserve('Polygon', true);
//xml.on('endElement: Polygon', function(poly) {
// var coordString = poly.outerBoundaryIs.LinearRing.coordinates.$children.join().trim();
//console.log('\n\n');
//})
그래서 아이디어는하는 endElement 이벤트의 이벤트 이미 터의 출력을 필터링하여 주석 텍스트의 동작을 복제하는 것입니다. 코드를 실행하여 여기에 출력을 얻고 있습니다. 내가보고있는 대상이나 여기에서 어디로 가야할지 모릅니다.
나는 스트림과 lazy.js에 새로운 사람들입니다. 이것이 총 멍청한 질문 인 경우 사과드립니다. 아마도 루프에서 벗어나는 객체를 이해하지 못했을 것입니다.
은'XML-stream' 라이브러리가 약간 다른 인터페이스를 제공 뭔가 * 스트림과 같은 *을 노출 한 것으로 보여이 하나가 까다 롭다 당신의 일상적인'stream.Readable' 노드에. Lazy는 현재 시퀀스로 임의의 소스를 래핑하는 방법을 제공하지 않습니다. 그러나 그것은 가까운 장래에 추가 할 부분입니다. 나는이 질문이있을 때 다시 살펴 보겠다. –
응답 해 주셔서 감사합니다. 그래서 지금 내 옵션은 json 예제에서와 같이 xml을 구문 분석하는 사용자 정의 시퀀스를 작성하거나 stream.Readable 인터페이스를보다 엄격하게 준수하는 XML 스트림 모듈을 작성하는 것입니다. 후자의 경로로 가면 lazy의 각 출력이 on.data 이벤트와 같을 것이라고 예상해야합니다. 맞습니까? – ddombrow