当前位置: 首页 > news >正文

HarmonyOS xml转换JavaScript 常用的几个方法

HarmonyOS 使用 xml转换JavaScript 的好处

  1. 易用性

    • 提供了简洁的API接口,使得XML到JavaScript对象的转换变得简单直接。
    • 转换选项的灵活性允许开发者根据实际需求自定义转换结果。
  2. 高效性

    • HarmonyOS对底层运行时环境进行了优化,使得XML转换过程更加高效。
    • 转换后的JavaScript对象可以直接在JavaScript应用程序中使用,无需额外的处理或转换。
  3. 兼容性

    • 支持多种XML格式和结构的转换。
    • 与HarmonyOS的其他组件和API高度兼容,便于集成和使用。
  4. 可扩展性

    • 开发者可以根据需要扩展转换功能,例如添加自定义的转换规则或处理逻辑。
    • 转换选项的扩展性使得未来的需求变化可以轻松应对。
  5. 维护性

    • 转换逻辑被封装在ConvertXML类中,使得代码更加模块化和易于维护。
    • 提供了详细的API文档和示例代码,有助于开发者快速上手和解决问题。

专为开发者打造的高效XML到JavaScript对象转换模块,能够轻松解析复杂的XML文本,并将其转换为结构化的JavaScript对象,支持嵌套元素、属性和文本内容的处理。无论是Web开发、移动应用还是数据分析场景,本模块都能助您一臂之力,实现数据的快速处理和展示,提升开发效率。

xml转换JavaScript

1. ConvertOptions

2. ConvertXML

        1. convertToJSObject

        2. convert

1. ConvertOptions

转换选项。

参数:

名称类型必填说明
trimboolean是否修剪位于文本前后的空白字符。
ignoreDeclarationboolean是否忽略xml写入声明指示,默认false。
ignoreInstructionboolean是否忽略xml的写入处理指令,默认false。
ignoreAttributesboolean是否忽略元素的属性信息,默认false。
ignoreCommentboolean是否忽略元素的注释信息,默认false。
ignoreCDATAboolean是否忽略元素的CDATA信息,默认false。
ignoreDoctypeboolean是否忽略元素的Doctype信息,默认false。
ignoreTextboolean是否忽略元素的文本信息,默认false。
declarationKeystring用于输出对象中declaration的属性键的名称。
instructionKeystring用于输出对象中instruction的属性键的名称。
attributesKeystring用于输出对象中attributes的属性键的名称。
textKeystring用于输出对象中text的属性键的名称。
cdataKeystring用于输出对象中cdata的属性键的名称
doctypeKeystring用于输出对象中doctype的属性键的名称。
commentKeystring用于输出对象中comment的属性键的名称。
parentKeystring用于输出对象中parent的属性键的名称。
typeKeystring用于输出对象中type的属性键的名称。
nameKeystring用于输出对象中name的属性键的名称。
elementsKeystring用于输出对象中elements的属性键的名称。

2. ConvertXML

1. convertToJSObject

convertToJSObject(xml: string, options?: ConvertOptions) : Object

转换xml文本为JavaScript对象。

参数:

参数名类型必填说明
xmlstring传入的xml文本。
optionsConvertOptions转换选项 , 默认值是ConvertOptions对象 , 由其中各个属性的默认值组成。

返回值:

类型说明
Object处理后返回的JavaScript对象。

使用方式:

try {let xml ='<?xml version="1.0" encoding="utf-8"?>' +'<note importance="high" logged="true">' +'    <title>Happy</title>' +'    <todo>Work</todo>' +'    <todo>Play</todo>' +'</note>';let conv = new convertxml.ConvertXML()let options: convertxml.ConvertOptions = {trim: false, declarationKey: "_declaration",instructionKey: "_instruction", attributesKey: "_attributes",textKey: "_text", cdataKey: "_cdata", doctypeKey: "_doctype",commentKey: "_comment", parentKey: "_parent", typeKey: "_type",nameKey: "_name", elementsKey: "_elements"}let result = JSON.stringify(conv.convertToJSObject(xml, options));console.log(result);
} catch (e) {console.log((e as Object).toString());
}

输出: 

// 输出(宽泛型)
// {"_declaration":{"_attributes":{"version":"1.0","encoding":"utf-8"}},"_elements":[{"_type":"element","_name":"note","_attributes":{"importance":"high","logged":"true"},"_elements":[{"_type":"element","_name":"title","_elements":[{"_type":"text","_text":"Happy"}]},{"_type":"element","_name":"todo","_elements":[{"_type":"text","_text":"Work"}]},{"_type":"element","_name":"todo","_elements":[{"_type":"text","_text":"Play"}]}]}]}

2. convert

convert(xml: string, options?: ConvertOptions) : Object

转换xml文本为JavaScript对象。

说明

从API version 8开始支持,从API version 9开始废弃,建议使用convertToJSObject9+替代。

参数:

参数名类型必填说明
xmlstring传入的xml文本。
optionsConvertOptions转换选项 , 默认值是ConvertOptions对象 , 由其中各个属性的默认值组成。

返回值:

类型说明
Object处理后返回的JavaScript对象。

使用方式:

let xml ='<?xml version="1.0" encoding="utf-8"?>' +'<note importance="high" logged="true">' +'    <title>Happy</title>' +'    <todo>Work</todo>' +'    <todo>Play</todo>' +'</note>';
let conv = new convertxml.ConvertXML();
let options: convertxml.ConvertOptions = {trim : false, declarationKey:"_declaration",instructionKey : "_instruction", attributesKey : "_attributes",textKey : "_text", cdataKey:"_cdata", doctypeKey : "_doctype",commentKey : "_comment", parentKey : "_parent", typeKey : "_type",nameKey : "_name", elementsKey : "_elements"}
let result = JSON.stringify(conv.convert(xml, options));
console.log(result);

输出: 

// 输出(宽泛型)
// {"_declaration":{"_attributes":{"version":"1.0","encoding":"utf-8"}},"_elements":[{"_type":"element","_name":"note","_attributes":{"importance":"high","logged":"true"},"_elements":[{"_type":"element","_name":"title","_elements":[{"_type":"text","_text":"Happy"}]},{"_type":"element","_name":"todo","_elements":[{"_type":"text","_text":"Work"}]},{"_type":"element","_name":"todo","_elements":[{"_type":"text","_text":"Play"}]}]}]}

 还有其他问题 请参考官方文档

制作不易 点个关注再走吧。°(°¯᷄◠¯᷅°)°。

http://www.lryc.cn/news/495276.html

相关文章:

  • Linux笔记---进程:进程等待
  • 【Linux】匿名管道通信场景——进程池
  • 算法妙妙屋-------1.递归的深邃回响:全排列的奇妙组合
  • 【maven-6】Maven 生命周期相关命令演示
  • 黑马程序员Java笔记整理(day06)
  • LeetCode【代码随想录】刷题(动态规划篇)
  • 【看海的算法日记✨优选篇✨】第三回:二分之妙,寻径中道
  • 基于yolov8、yolov5的铝材缺陷检测识别系统(含UI界面、训练好的模型、Python代码、数据集)
  • 计算机光电成像理论基础
  • 【QNX+Android虚拟化方案】125 - 如何创建android-spare镜像
  • 深度学习基础小结_项目实战:手机价格预测
  • EMall实践DDD模拟电商系统总结
  • 【随笔】AI技术在电商中的应用
  • 序列式容器详细攻略(vector、list)C++
  • 快速启动项目
  • springboot347基于web的铁路订票管理系统(论文+源码)_kaic
  • 使用API管理Dynadot域名,在账户中添加域名服务器(Name Server)
  • 【Linux | 计网】TCP协议深度解析:从连接管理到流量控制与滑动窗口
  • go语言的成神之路-筑基篇-对文件的操作
  • 两道数据结构编程题
  • 【Qt】QDateTimeEdit控件实现清空(不保留默认时间/最小时间)
  • 12、字符串
  • DPDK用户态协议栈-Tcp Posix API 1
  • 【人工智能-科普】图神经网络(GNN):与传统神经网络的区别与优势
  • LabVIEW实现UDP通信
  • [pdf,epub]228页《分析模式》漫谈合集01-45提供下载
  • Kafka的消费消息是如何传递的?
  • 二分查找(Java实现)(1)
  • 力扣103.二叉树的锯齿形层序遍历
  • Search with Orama