@xmpp/client

简介

[@xmpp/xml]xmpp.js/packages/xml at main · xmppjs/xmpp.js (github.com) @xmpp/xml 是一个专注于处理XMPP协议的XML解析库。

已支持功能

  • 创建xml元素
  • 解析XML字符串
  • 含有特殊字符XML字符串进行转义
  • 将转义后的XML字符串进行反转义
  • 将XML文本中的特殊字符进行转义
  • 将转义后的XML文本进行反转义

下载安装

 ohpm install @ohos/xmpp_xml

接口和属性列表

接口列表

接口 参数 功能
onStartElement(name, attrs) name,attrs 创建了一个新的 Element 实例,并根据当前的解析状态将其添加到正确的位置
onEndElement(name) 'name':string 当解析器遇到 XML 结束标签时调用的方法。在该方法中,检查当前的解析状态,处理结束标签
onText(str) 'online':string 当解析器遇到文本内容时调用的方法。在该方法中,将文本内容添加到当前的 cursor 元素中
end(data) 'status':string 结束解析,如果有剩余的数据,继续解析。
write(data) 'stanza':string 将数据传递给 LtxParser 实例进行解析
xml(...args) args用于构建xml的数据 这是一个默认导出的函数,接受任意参数并返回一个通过createElement()函数创建的XML元素。可以用于快速创建XML元素
createElement 用于创建一个XML元素,可以传入标签名、属性、子元素等信息,返回一个新的Element实例。
escapeXML 用于将XML字符串中的特殊字符进行转义
unescapeXML 用于将转义后的XML字符串进行反转义,还原特殊字符
escapeXMLText 用于将XML文本中的特殊字符进行转义
unescapeXMLText 用于将转义后的XML文本进行反转义,还原特殊字符

使用示例

import {Parser} from '@ohos/xmpp_xml'
import xml  from "@ohos/xmpp_xml"
@Entry
@Component
struct Index {
  private parser:ESObject =new Parser();
  build() {
    Column() {
      Button('Parser').onClick((v) => {
          //解析开始标签
        this.parser.on('start', (element:ESObject) => {
          console.info('Parser---Start element:', element);
        });
          //解析结束标签
        this. parser.on('end', (root:ESObject) => {
          console.info('Parser---End element:', root);
        });
          //解析值
        this. parser.on('element', (element:ESObject) => {
          console.info('Parser---Element:', element);
        });
          //写入一个XML字符串,触发解析过程。
        this.parser.write("<foo><bar>hello</bar></foo>");
      }).margin({ top: px2vp(50) })
        //创建xml实体
         message= xml("message", { type: "chat", to: "admin@10.50.80.51" }, xml("body", {}, "你好")).toString();
          })
    }
    .height('100%')
    .width('100%')
  }

使用说明

当解析器遇到 XML 开始标签时调用的方法

parser.onStartElement('message', { from: 'sender@example.com', to: 'receiver@example.com' });

当解析器遇到 XML 结束标签时调用的方法。

parser.onEndElement('message');

当解析器遇到文本内容时调用的方法

parser.onText('Hello, world!');

将数据传递给 LtxParser 实例进行解析

xmpp.send(xml)

parser.write('<message from="sender@example.com" to="receiver@example.com">Hello, world!</message>');

结束解析,如果有剩余的数据,继续解析

parser.end();

监听Parser方法

parser.on('start', (element) => {
  console.log('Start element:', element);
});

parser.on('end', (root) => {
  console.log('End element:', root);
});

parser.on('element', (element) => {
  console.log('Element:', element);
});

parser.on('error', (error) => {
  console.error('Error:', error.message);
});

关于混淆

  • 代码混淆,请查看代码混淆简介
  • 如果希望三方库在代码混淆过程中不会被混淆,需要在混淆规则配置文件obfuscation-rules.txt中添加相应的排除规则:
-keep
./oh_modules/@ohos/xmpp_xml

在下述版本验证通过: DevEco Studio:5.0.3.200, 5.0.0.22-Canary2, SDK: API12

贡献代码

使用过程中发现任何问题都可以提Issue 给我们,当然,我们也非常欢迎你给我们提PR

开源协议

本项目基于ISC LICENSE,请自由地享受和参与开源。