简单的 XML 解析器
这是一个简单且不经过验证的XML 解析器。 它会不加区分地分析大多数半成型的XML文档,这些文档不会试图做任何过于聪明的事情.
此库的目的是便于解析和消耗 XML 文件 。 世界真的需要吗? 也许不是。 但作者测试的所有其他可用的包 要么是一个 质量 过度杀死或未能正确分析相当简单的 XML 。 我们到了.
有一些限制:
- 评论被抛弃.
- 处理指令被丢弃 .
- 命名空间前缀保存在每个节点上;完整的 xmlns 验证是通过一个选项选择的.
- 文档类型被丢弃 .
- 不支持 Nested doctype , 并且会出错 .
- 节点有浏览器DOM接口的子集.
但另一方面:
- 由选取引擎所建.
- 无依取相.
安装
寻常:
$ npm i @borgar/simple-xml
解析 XML
import { parseXML } from '@borgar/simple-xml';
const dom = parseXML('<root><node>Lorem ipsum</node></root>');
console.log(dom.querySelector('node').textContent);
剖析函数接受两个参数,第一个是XML源. 第二个是选项对象。 有三种选择:
允许通常禁止的未引用属性 laxAttr数字 :
parseXML('<root><node foo=bar /></root>', { laxAttr: true });
允许通常被禁止的“ 无根” 文档带有 emptyDoc数字 :
parseXML('', { emptyDoc: true });
校验 xmlns 声明及其内容/属性前缀 ns声明适用于其内容及其后人. 使用此旗帜, 在其声明范围之外使用前缀, 或误用 xml 或者说 xmlns 前缀,丢出一个 NamespaceError数字 :
parseXML('<root xmlns:x="urn:example"><x:node /></root>', { ns: true });
软件包除了分析方法外,还输出节点类(Node, (中文(简体) ), Element, (中文(简体) ), Document, (中文(简体) ), DocumentFragment, (中文(简体) ), TextNode, (中文(简体) ), CDataNode),序列化帮助者(prettyPrint, (中文(简体) ), simplePrint, (中文(简体) ), escapeXML页:1 isElement 类型守护,以及根植于 XMLError (单位:千美元)ParserError, (中文(简体) ), NamespaceError, (中文(简体) ), HierarchyError, (中文(简体) ), NotFoundError, (中文(简体) ), InUseAttributeError, (中文(简体) ), InvalidCharacterError) (中文(简体) ).