`

SAX:js解析XML插件sax,能获得行号信息挺方便

 
阅读更多

官网:https://www.npmjs.com/package/sax

github:https://github.com/isaacs/sax-js

此种方式可以非常方便的获取行号信息,很容易对XML定位出错,对于前端XML编辑器,对XML数据进行校验,定位到出错行非常方便。

 

使用方法:

Usage
var sax = require("./lib/sax"),
  strict = true, // set to false for html-mode 
  parser = sax.parser(strict);
 
parser.onerror = function (e) {
  // an error happened. 
};
parser.ontext = function (t) {
  // got some text.  t is the string of text. 
};
parser.onopentag = function (node) {
  // opened a tag.  node has "name" and "attributes" 
};
parser.onattribute = function (attr) {
  // an attribute.  attr has "name" and "value" 
};
parser.onend = function () {
  // parser stream is done, and ready to have more stuff written to it. 
};
 
parser.write('<xml>Hello, <who name="world">world</who>!</xml>').close();
 
// stream usage 
// takes the same options as the parser 
var saxStream = require("sax").createStream(strict, options)
saxStream.on("error", function (e) {
  // unhandled errors will throw, since this is a proper node 
  // event emitter. 
  console.error("error!", e)
  // clear the error 
  this._parser.error = null
  this._parser.resume()
})
saxStream.on("opentag", function (node) {
  // same object as above 
})
// pipe is supported, and it's readable/writable 
// same chunks coming in also go out. 
fs.createReadStream("file.xml")
  .pipe(saxStream)
  .pipe(fs.createWriteStream("file-copy.xml"))
分享到:
评论

相关推荐

    SAX解析技术

    SAX(Simple API for XML)是XML解析的一种方式,尤其适合处理大型XML文档,因为它采用事件驱动模型,以流式的方式读取XML数据,从而节省内存。 **SAX解析技术详解** SAX解析器在读取XML文档时,会触发一系列的...

    tinyxml_libtinyxml的缺点_test_tinyxml_keptj4v_解析xml_

    2. 缺乏错误处理:TinyXML的错误处理机制相对较弱,它通常只会报告错误发生的行号,而不会提供太多上下文信息,这可能使调试变得困难。 3. 不支持XML Schema或DTD:TinyXML不支持XML Schema验证或DTD(Document Type...

    sax-wasm:第一个用于WebAssembly的可流式,固定内存的XML,HTML和JSX解析器

    WebAssembly的SAX(XML的简单API) 当您绝对必须在房间中拥有最快的解析器时,不要接受任何替代品。 首个用于流式,低内存的XML,HTML,JSX和Angular Template解析器。 Sax Wasm是用编写的XML,HTML,JSX和Angular...

    Visual Studio Code CoverageXml 文件解析器源码

    1. 解析模块:这部分代码负责读取和解析CoverageXml文件,这可能涉及到处理XML结构,如DOM(Document Object Model)解析或SAX(Simple API for XML)事件驱动解析。解析过程中,需要识别并提取关键的覆盖率数据,如...

    libxml2学习libxml2学习libxml2学习

    2. **DOM解析**:DOM解析将整个XML文档加载到内存中形成一个树形结构,方便遍历和操作。适用于小型或中型XML文档,便于进行复杂的查询和修改。 三、libxml2的主要函数及使用 1. `xmlParseFile()`:用于解析XML文件...

    Fortify-XML-Converter-源码.rar

    这可能涉及到使用Java的DOM(文档对象模型)或SAX(简单API for XML)解析器。DOM解析器加载整个XML文件到内存中,方便查找和操作元素;而SAX解析器则按事件驱动的方式逐行处理,适用于大文件。 3. **数据模型**:...

    POI处理Excel文件.zip

    SAX(Simple API for XML)是一种基于事件驱动的XML解析方法,它在内存中不加载整个XML文档,而是逐个处理XML事件,如开始元素、结束元素、文本等,这样可以处理非常大的XML文档,而不会消耗过多的内存。 在使用...

    java面试精华2

    - **定义**: XML是用于标记文本的一种标准,常用的解析方式有三种:SAX、DOM、StAX。 - **SAX解析**: - 事件驱动型解析,适合大数据量解析。 - 效率较高,但不易于修改XML文档。 - **DOM解析**: - 基于树形结构的...

    java excel

    这些成员变量主要用于存储解析过程中的一些状态信息,如共享字符串表、当前解析的内容、是否下一个元素是字符串、当前工作表索引、当前行号以及列号等。 ##### 3. 读取单个工作表 ```java public void ...

    JAVA使用或覆盖了已过时的API对照表.pdf

    JAVA 中的 API 使用或覆盖的对照表详细介绍了哪些已过时的 API,包括了 org.xml.sax.AttributeList、java.security.Certificate、org.xml.sax.DocumentHandler、org.omg.CORBA.DynAny 等多个接口和类的变化。...

    ant daily build 学习五(findbugs多文件合并细节问题)

    这个类可能会使用DOM或SAX解析器来处理XML,使用XPath来定位和提取特定的FindBugs问题,然后根据问题的类、方法、行号等信息进行合并。 在处理多文件合并时,需要注意的问题包括: 1. **重复问题的处理**:同一个...

    java对大数据量文件内容的多线程读取和排序.pdf

    如果是 XML 文件,就使用 SAX 解析方式,基于流。 3. 排序 我们可以使用多线程来提高排序效率。首先,我们可以将文件流读取到内存中,然后对其进行排序。排序方式可以是按照权值进行排序,我们可以将索引信息存放...

Global site tag (gtag.js) - Google Analytics