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

转换选项。

参数:

名称 类型 必填 说明
trim boolean 是否修剪位于文本前后的空白字符。
ignoreDeclaration boolean 是否忽略xml写入声明指示,默认false。
ignoreInstruction boolean 是否忽略xml的写入处理指令,默认false。
ignoreAttributes boolean 是否忽略元素的属性信息,默认false。
ignoreComment boolean 是否忽略元素的注释信息,默认false。
ignoreCDATA boolean 是否忽略元素的CDATA信息,默认false。
ignoreDoctype boolean 是否忽略元素的Doctype信息,默认false。
ignoreText boolean 是否忽略元素的文本信息,默认false。
declarationKey string 用于输出对象中declaration的属性键的名称。
instructionKey string 用于输出对象中instruction的属性键的名称。
attributesKey string 用于输出对象中attributes的属性键的名称。
textKey string 用于输出对象中text的属性键的名称。
cdataKey string 用于输出对象中cdata的属性键的名称
doctypeKey string 用于输出对象中doctype的属性键的名称。
commentKey string 用于输出对象中comment的属性键的名称。
parentKey string 用于输出对象中parent的属性键的名称。
typeKey string 用于输出对象中type的属性键的名称。
nameKey string 用于输出对象中name的属性键的名称。
elementsKey string 用于输出对象中elements的属性键的名称。

2. ConvertXML

1. convertToJSObject

javascript 复制代码
convertToJSObject(xml: string, options?: ConvertOptions) : Object

转换xml文本为JavaScript对象。

参数:

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

返回值:

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

使用方式:

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

javascript 复制代码
convert(xml: string, options?: ConvertOptions) : Object

转换xml文本为JavaScript对象。
说明

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

参数:

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

返回值:

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

使用方式:

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"}]}]}]}

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

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

相关推荐
jz_ddk3 分钟前
[学习] C语言数学库函数背后的故事:`double erf(double x)`
c语言·开发语言·学习
萧曵 丶13 分钟前
Rust 所有权系统:深入浅出指南
开发语言·后端·rust
xiaolang_8616_wjl17 分钟前
c++文字游戏_闯关打怪2.0(开源)
开发语言·c++·开源
收破烂的小熊猫~26 分钟前
《Java修仙传:从凡胎到码帝》第四章:设计模式破万法
java·开发语言·设计模式
烛阴39 分钟前
void 0 的奥秘:解锁 JavaScript 中 undefined 的正确打开方式
前端·javascript
nananaij1 小时前
【Python进阶篇 面向对象程序设计(3) 继承】
开发语言·python·神经网络·pycharm
初遇你时动了情1 小时前
腾讯地图 vue3 使用 封装 地图组件
javascript·vue.js·腾讯地图
dssxyz1 小时前
uniapp打包微信小程序主包过大问题_uniapp 微信小程序时主包太大和vendor.js过大
javascript·微信小程序·uni-app
阿蒙Amon1 小时前
为什么 12 版仍封神?《C# 高级编程》:从.NET 5 到实战架构,进阶者绕不开的必修课
开发语言·c#