node-xmlreader
node-xmlreader copied to clipboard
Empty tags result into error
When having an empty tag like :
and trying to get text() from value tag library returns "TypeError: xml.value.text() is not a function."
Hi, I know it's a very old post, but I had the same problem and I fixed it by adding few lines to the module.
Basically what is happening is that only the nodes that have any text have the method text()
. It's caused by method text()
only being added to objects that invoke ontext
event from sax module (which is a module that xmlreader is based on).
So here is my solution (xmlreader.js file):
saxparser.onclosetag = function (node) {
// add text method to objects without text
if(!object.text){
object.text = function(){
return null;
}
}
// set the object back to its parent:
object = object.parent();
}
I'm checking in onclosetag
event if an object has text()
method. If it doesn't then I just create one that returns null.
So now when you try to get text of an empty tag, it's just going to return null instead of crashing.
I think this kind of fix should be added to the official module, @SamDecrock
I love the module though :)