`
v5browser
  • 浏览: 1138273 次
社区版块
存档分类
最新评论

node.js xmlreader无法获取CDATA区问题修复

 
阅读更多

Email:longsu2010 at yeah dot net

---- 2013-05-02 update ----

这个问题在写本博的同时已经提交给xmlreader作者,该问题作者已经修复,请直接使用npm更新。

我一不小心竟然成为xmlreader的代码贡献者,真是惭愧。

---- update end ----


之前写了一篇关于node.js解析xml的文章,写的是xmlreader这个模块的使用,原文见如下链接:

"http://blog.csdn.net/tt361/article/details/8777675"
xmlreader是对sax的进一步封装了,用起来很简单。前几天发现xmlreader是不会处理CDATA的,所以有些数据可能就获取不到(真是的过程是发现数据获取不到,之后发现xml中有CDATA,之后看了xmlreader源码发现并未处理CDATA)。
本文是介绍我如何解决这个问题,若修改后xmlreader仍不能满足你的需求,那么建议使用sax模块。
读node.js模块的一般步骤为,到模块所在目录下找到package.json,看看main配置项找到模块的入口文件。我们就到xmlreader目录下看package.json,发现入口文件为xmlreader.js。
在xmlreader.js中找到saxparser.ontext = function(){/* …… */},在其前边增加如下代码(处理CDATA)
	saxparser.oncdata = function(cdata){
		// add the function text() to the object to return the cdata value:
		object.text = function(){
			return cdata;
		}
	};

之后将saxparser.ontext = function(){/* …… */}的实现改为如下代码
	saxparser.ontext = function (text) {
		// add the function text() to the object to return the text value:
		!object.text ? object.text = function(){
			return text;
		} : null;
	};

这样在遇到CDATA的时候获取文本就会返回CDATA块中的内容。
这个页面的链接为http://blog.csdn.net/tt361/article/details/8848028

这个问题的进展可以关注如下网址https://github.com/SamDecrock/node-xmlreader/issues/1


----2013-04-25 update

补充一点xmlreader当前版本为0.2.2

分享到:
评论

相关推荐

    Video8.Demo1.XmlReader

    Video8.Demo1.XmlReader

    2_XMLreader.cs

    2_XMLreader.cs

    j2me处理xml的jar包(kxml2-2.3.0.jar)

    j2me开发时解晰xml时用到的jar包

    Java解析XML文档(二):sax读取xml文件导出excel

    NULL 博文链接:https://suky.iteye.com/blog/621169

    php xmlReader & xmlWriter

    php xmlReader & xmlWriter

    Ext深入浅出 数据传输

    10.4.3 从store中获取数据...............234 10.4.4 更新store中的数据...............236 10.4.5 加载及显示数据.......................237 10.4.6 其他功能...................................238 10.5 常用...

    XmlReader的m文件

    @property (nonatomic, strong) NSMutableArray *dictionaryStack; @property (nonatomic, strong) NSMutableString *textInProgress; @property (nonatomic, strong) NSError *errorPointer;

    XmlReader.zip

    QT界面显示 对xml文件进行添加、删除、修改、查询等操作。

    使用 XmlReader 读取 XML 文档

    使用 XML Reader 读取 XML 文档,有多个XML Reader 读取 XML 文档的例子,适用于初学者。

    iOS XMLReader

    可以将 XML 读取成为 NSDictionary,很方便!

    SimpleXMLReader, 包装的XMLReader类,用于对大型xml进行简单的SAX读取.zip

    SimpleXMLReader, 包装的XMLReader类,用于对大型xml进行简单的SAX读取 简单的XML阅读器包装器XMLReader类,用于简单的英镑 SAX -reading ( 简单的XPath -queries ),代价为大。对其他xml库的内存使用的最小 ( 。...

    HTML Parser

    org.htmlparser.Node org.htmlparser.Text org.htmlparser.Parser org.htmlparser.Remark org.htmlparser.tags.Div org.htmlparser.Attribute org.htmlparser.tags.Html org.htmlparser.tags.Span org.htmlparser....

    XML.rar_ XmlTextWriter_NEW_XmlTextWriter_xml_xmlreader

    用C#操作xml xmlFilePath = textBox2.Text FileStream fs = new FileStream(filePath ,FileMode.... XmlTextWriter xmlreader = new XmlTextWriter(xmlFilePath+"IMAGEENCODING.xml" ,System .Text .Encoding .UTF8 )

    Video8.AllDemo

    Video8.Demo1.XmlReader

    精通JS脚本之ExtJS框架.part1.rar

    《精通JS脚本之ExtJS框架》由浅入深地讲解了ExtJS在Web开发中的相关技术。本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计...

    精通JS脚本之ExtJS框架.part2.rar

    《精通JS脚本之ExtJS框架》由浅入深地讲解了ExtJS在Web开发中的相关技术。本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计...

    xmlreader:Java 中的 XMLReader

    Java 中的 XMLReader 这是一个用 Java 编写的 XMLReader。 此代码执行的任务是读取 src 文件夹中名为 XMLfileToBeParsed 的 XML 文件的内容。 此代码使用 java.io 和 javax.xml.stream 库。 它读取xml文件并以如下...

    xmlReader_解析xml文件

    NULL 博文链接:https://ladybird2010.iteye.com/blog/757745

    ADO.NET中使用XML

    System.Xml.XmlReader myReader; ... myReader = mySqlCommand.ExecuteXmlReader(); DataSet DataSet myDataSet = new DataSet(); 读 myDataSet.ReadXml("C:\myData.XML"); 结构 myDataSet.ReadXmlSchema("C:\...

Global site tag (gtag.js) - Google Analytics