当前位置: 首页 > 软件库 > Web应用开发 > HTML解析器 >

htmlparser2

HTML/XML 解析器
授权协议 MIT
开发语言 TypeScript
所属分类 Web应用开发、 HTML解析器
软件类型 开源软件
地区 不详
投 递 者 淳于飞文
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

htmlparser2 是一个 fast & forgiving HTML/XML 解析器。

npm install htmlparser2

htmlparser2 的 live demo:https://astexplorer.net/#/2AmVrGuGVJ

htmlparser2 本身提供了一个回调接口,允许以最小的分配来消耗文档。为了获得更符合人体工程学的体验,可阅读下面的 Getting a DOM

const htmlparser2 = require("htmlparser2");
const parser = new htmlparser2.Parser({
    onopentag(name, attributes) {
        /*
         * This fires when a new tag is opened.
         *
         * If you don't need an aggregated `attributes` object,
         * have a look at the `onopentagname` and `onattribute` events.
         */
        if (name === "script" && attributes.type === "text/javascript") {
            console.log("JS! Hooray!");
        }
    },
    ontext(text) {
        /*
         * Fires whenever a section of text was processed.
         *
         * Note that this can fire at any point within text and you might
         * have to stich together multiple pieces.
         */
        console.log("-->", text);
    },
    onclosetag(tagname) {
        /*
         * Fires when a tag is closed.
         *
         * You can rely on this event only firing when you have received an
         * equivalent opening tag before. Closing tags without corresponding
         * opening tags will be ignored.
         */
        if (tagname === "script") {
            console.log("That's it?!");
        }
    },
});
parser.write(
    "Xyz <script type='text/javascript'>const foo = '<<bar>>';</ script>"
);
parser.end();

Output (with multiple text events combined):

--> Xyz
JS! Hooray!
--> const foo = '<<bar>>';
That's it?!
  • [b]上接 1 else if (node instanceof TextNode) { stringText = node.toPlainTextString(); if ( "" .equals( title )) continue ; stringText = stringText.replaceAll( "[ \t\n\f\r   ]+" , " " ); stringText = Tex

  • 我正在尝试node-htmlparser2,一开始就被卡住了。我有数千个这样的XML文件: ⦠⦠⦠⦠我想要里面的一切 作为单个字符串。我下面的代码有效,但在我看来这不是正确的方法 let isFoo = false; let txt = ''; const p = new htmlparser.Parser({ onopentag: function(name, attribs){

  • let htmlparser = require("htmlparser2"); let fs = require("fs"); function WriteXml(xml) { this.xml = xml; this.stack = []; this.node = ""; this.rootName = ''; } WriteXml.prototype

  • source: Tokenizer.prototype._stateInNamedEntity = function(c){ if(c === ";"){ this._parseNamedEntityStrict(); if(this._sectionStart + 1 < this._index && !this._

 相关资料
  • 主要内容:解析 XML 文档,解析 XML 字符串,跨域访问,XML DOM所有现代浏览器都有内建的 XML 解析器。 XML 解析器把 XML 文档转换为 XML DOM 对象 - 可通过 JavaScript 操作的对象。 解析 XML 文档 下面的代码片段把 XML 文档解析到 XML DOM 对象中: if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlht

  • untangle untangle 是一个简洁的用于解析 XML 文档的库。输入一个 XML 文档后,untangle 将文档的结构映射成结点和属性,并返回一个 Python 对象。 形如以下的 XML 文件: <?xml version="1.0"?> <root> <child name="child1"> </root> 可以使用以下的方法进行加载: import untangl

  • 主要内容:什么是 XML 解析器?XML 解析是指通过 XML 文档来访问或修改数据。 什么是 XML 解析器? XML 解析器 提供了一种访问或修改 XML 文档中数据的方法。Java 提供了多种选项来解析 XML 文档。以下是常用于解析 XML 文档的各种类型的解析器。 Dom解析器: 通过加载文档的完整内容并在内存中创建其完整的层次树来解析 XML 文档。 SAX解析器: 在基于事件的触发器上解析 XML 文档。不将完整的文

  • 问题内容: 我不是开发人员,只是涉足编程。我从来不了解的一个领域是XML解析。可悲的是,对于我最新的“项目”,我需要为一个Android应用执行此操作。它是我正在工作的原型。 我有这个XML(模型文件): 我有一些代码可以让我获得每个的NodeList: 我不确定下一步该怎么做。我的代码对此似乎很长。我一直在搜寻更好的方法,但发现一些更简洁的代码,无法上班。 有没有很好的Android XML教程

  • 问题内容: 场景:我正在尝试解析一个XML结构,但我不知道如何在xml属性值包含文本和更多嵌套值的情况下建立结构。所有其他属性都已正确设置,我不确定是否需要获取源的值并创建一个单独的解析器来检索元素的值。 编辑: 我正在尝试将源解析为以下形式的字符串:你好%{first_name}%{last_name} 用当前结构解组xml字符串将返回一个空结构 使用innerxml的@plato将源设置为:

  • 如果我运行一个普通的JAVA项目,上面的函数可以正常工作,但是如果我在android项目中运行它,它会返回false。问题出在哪里?如何在android项目中预览e.printstacktrace,以便查看异常情况?

  • 我得到xml格式的响应,数据在xml节点的cData部分内。现在当我试图提取节点值,然后用cdata文本获取值。 我如何解析它? xml: 我使用代码来获取整个列表,但我只需要获取特定的节点 上面的代码列出了所有的cdata值... 我只需要从上面的xml中获取dbid、isdb、mydb值

  • 我正在尝试用DocumentBuilder将xml结果转换为字符串。我构建了以下函数,以便从数据库中获取所有结果,当我将它们存储在列表中并发送到列表时一切都很好,但当我试图将结果显示为字符串xml时,下一个错误就出现了。