Skip to content

Commit dd4d530

Browse files
author
Robert Righter
committed
CData, comments, and error callbacks
1 parent 4fff94f commit dd4d530

File tree

1 file changed

+16
-16
lines changed

1 file changed

+16
-16
lines changed

lib/node-xml.js

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -247,15 +247,14 @@ XMLP.prototype._parsePrefixAndElementName = function (elementlabel){
247247
XMLP.prototype._parseNamespacesAndAtts = function (atts){
248248
//translate namespaces into objects with "prefix","uri", "scopetag" Add them to: this.m_namespaceList
249249
//The function should return a new list of tag attributes with the namespaces filtered
250-
sys = require('sys');
251250
that = this;
252251
var newnamespaces = [];
253252
var filteredatts = [];
254253
atts.map(function (item){
255-
if(item.name.slice(0,5) === "xmlns"){
254+
if(item[0].slice(0,5) === "xmlns"){
256255
newnamespaces.push({
257-
prefix : item.name.slice(6),
258-
uri : item.value,
256+
prefix : item[0].slice(6),
257+
uri : item[1],
259258
scopetag : that.m_name,
260259
});
261260
}
@@ -265,13 +264,10 @@ XMLP.prototype._parseNamespacesAndAtts = function (atts){
265264
return "not used";
266265
});
267266
this.m_namespaceList = this.m_namespaceList.concat(newnamespaces);
268-
return [filteredatts, newnamespaces.map(function(item){
269-
return item.prefix+","+item.uri
270-
}).join(',')];
267+
return [ filteredatts, newnamespaces.map(function(item){return [item.prefix,item.uri];}) ];
271268
}
272269

273270
XMLP.prototype._getContextualNamespace = function (prefix){
274-
var sys = require('sys');
275271
if(prefix !== ''){
276272
for(item in this.m_namespaceList){
277273
item = this.m_namespaceList[item];
@@ -679,7 +675,7 @@ XMLP.prototype._setErr = function(iErr) {
679675
//SaxParser is an object that basically wraps an XMLP instance, and provides an
680676
//event-based interface for parsing. This is the object users interact with when coding
681677
//with XML for <SCRIPT>
682-
this.SaxParser = function(eventhandlerfactory) {
678+
var SaxParser = function(eventhandlerfactory) {
683679

684680
var eventhandler = new function(){
685681

@@ -839,7 +835,7 @@ SaxParser.prototype._fireError = function(strMsg) {
839835
this.m_bErr = true;
840836

841837
if(this.m_hndErr && this.m_hndErr.onError) {
842-
this.m_hndErr.onError(this);
838+
this.m_hndErr.onError(this.m_strErrMsg);
843839
}
844840
}
845841

@@ -913,7 +909,7 @@ SaxParser.prototype._parseLoop = function(parser) {
913909
iEvent = parser.next();
914910

915911
if(iEvent == XMLP._ELM_B) {
916-
theatts = this.m_parser.m_atts.map(function(item){return { name : item[0], value : item[1], };});
912+
theatts = this.m_parser.m_atts;//this.m_parser.m_atts.map(function(item){return { name : item[0], value : item[1], };});
917913
nameobject = parser._parsePrefixAndElementName(parser.getName());
918914
theattsandnamespace = parser._parseNamespacesAndAtts(theatts);
919915
var theuri = parser._getContextualNamespace(nameobject.prefix);
@@ -930,7 +926,7 @@ SaxParser.prototype._parseLoop = function(parser) {
930926
this._fireEvent(SaxParser.ELM_E, parser.getName());
931927
}
932928
else if(iEvent == XMLP._TEXT) {
933-
this._fireEvent(SaxParser.CHARS, parser.getContent(), parser.getContentBegin(), parser.getContentEnd() - parser.getContentBegin());
929+
this._fireEvent(SaxParser.CHARS, parser.getContent().slice(parser.getContentBegin(),parser.getContentEnd()));
934930
}
935931
else if(iEvent == XMLP._ENTITY) {
936932
this._fireEvent(SaxParser.CHARS, parser.getContent(), parser.getContentBegin(), parser.getContentEnd() - parser.getContentBegin());
@@ -939,12 +935,12 @@ SaxParser.prototype._parseLoop = function(parser) {
939935
this._fireEvent(SaxParser.PI, parser.getName(), parser.getContent().substring(parser.getContentBegin(), parser.getContentEnd()));
940936
}
941937
else if(iEvent == XMLP._CDATA) {
942-
this._fireEvent(SaxParser.CD_B);
943-
this._fireEvent(SaxParser.CHARS, parser.getContent(), parser.getContentBegin(), parser.getContentEnd() - parser.getContentBegin());
944-
this._fireEvent(SaxParser.CD_E);
938+
this._fireEvent(SaxParser.CD_B, parser.getContent().slice(parser.getContentBegin(),parser.getContentEnd()));
939+
//this._fireEvent(SaxParser.CHARS, parser.getContent(), parser.getContentBegin(), parser.getContentEnd() - parser.getContentBegin());
940+
//this._fireEvent(SaxParser.CD_E);
945941
}
946942
else if(iEvent == XMLP._COMMENT) {
947-
this._fireEvent(SaxParser.CMNT, parser.getContent(), parser.getContentBegin(), parser.getContentEnd() - parser.getContentBegin());
943+
this._fireEvent(SaxParser.CMNT, parser.getContent().slice(parser.getContentBegin(),parser.getContentEnd()));
948944
}
949945
else if(iEvent == XMLP._DTD) {
950946
}
@@ -1173,4 +1169,8 @@ function __unescapeString(str) {
11731169
return str;
11741170
}
11751171

1172+
process.mixin(exports, {
1173+
SaxParser: SaxParser
1174+
});
1175+
11761176
})()

0 commit comments

Comments
 (0)