aardio 文档

string.html 库模块帮助文档

使用说明

string.html 继承自 string.xml ,基本用法与 string.xml 相同。

string.html 每个 HTML 节点对象都是一个表对象(table), 这些 HTML 节点对象如果有 tagName 属性表示标记名 - 那他就是一个普通节点。 如果没有 tagName 属性而是拥有 text 或 cdata属性 - 那就说明它是一个 text 文本节点或者是 cdata 节点。

string.html 提供以下四种类型的节点:

  1. 拥有标签名( tagName 属性)的普通 HTML 元素 普通 HTML 节点使用 tagName 属性表示 XML 标记名, 在 string.html 中 "tagName"属于保留的 HTML 属性,其他属性使用此属性名将会被自动忽略。

XML 声明节点的 tagName 为"?xml"

  1. 顶层根节点 string.html 总是虚拟出一个空的没有 tagName 属性的顶层根节点, 这个根节点是文档里的 XML/HTML 真实根节点的父节点。

  2. 文本节点 文本节点使用 text 属性表示文本,无 tagName 属性,无其他属性。

  3. CDATA节点 CDATA 节点使用 cdata 属性表示数据, 无 tagName 属性,无其他属性

注释节点被自动忽略不会存为节点对象。

string 成员列表 #

string.html() #

创建 HTML 解析器,参数请指定包含HTML代码的字符串,
调用string.xml解析HTML代码,用法与string.xml相同
但支持识别HTML空标签、省略闭合标签规则

此对象不支持 table.tostring , console.dump 函数,不能跨线程传递

返回对象:stringXmlObject

string.html 成员列表 #

HTML 简单解析器。

严格的校验 HTML 语法正确性不是本模块的设计目标,
所以此解析器尽可能兼容错误,兼容了 HTML,SGML 的部分规则:

  1. 不要求存在根标签
  2. 尝试自动修正不配对的标记
  3. 在有必要的时候尝试忽略大小写
  4. 支持识别 HTML 空标签、省略闭合标签规则

string.html.escape() #

将字符串中的 < > " ' & 等 HTML 标记字符编码为实体字符(entity)。
如果参数为非 null 值则返回转换后的字符串。
参数只能是 null 或字符串、buffer

string.html.fromText(普通文本) #

将普通文本转换为HTML

string.html.ncrDecode() #

NCR 编码字符、HTML 实体字符还原为 UTF8 文本。
此函数默认只会解码 XML 基本命名实体与常用 HTML 命名实体字符。
如果提前导入 web.entities 库则支持解码全部 HTML 命名实体(实体必须以 ; 号结尾)。

string.html.ncrEncode(str,pattern) #

将字符串参数 @str 中以 @pattern 指定模式串所匹配的字符进行 NCR 编码。
参数 @pattern 可用模式匹配语法指定要编码的字符,省略则默认为 :|[\<\>\&"'],也就是仅编码非 ACSII 字符与 <>&"' 这 5 个基本实体字符。

返回编码后的字符串。

string.html.removeTag(html,"script") #

移除指定的html标记,支持不定个数的标记参数

string.html.toText(HTML代码) #

将 HTML 代码转换为文本(返回文本总是会去掉首尾空白字符)。
参数可指定字符串或字符串数组(必须是 [] 构造的纯数组)。

此函数会处理部分常见的块级元素并添加边缘换行,
并处理 br,p 等元素的换行与段落格式。
将 HTML 代码中的所有空白与换行压缩为单个空格(不区分是否元素边缘空白)。

这个函数仅仅是执行模式替换,并不会解析 HTML 格式。
将 HTML 代码作与 string.html 的构造参数并构造 string.html 文档对象,
然后再调用 string.html 对象(或元素)的 innerText 方法也可以提取文本。
innerText 方法可以区分块级元素与内联元素,并区分处理边缘空白与文本内空白。

string.html.toXml(HTML代码) #

将 HTML 代码转换为 XML 文本

Markdown 格式