XML转换
=====

将XML文本转换为JavaScript对象，便于处理和操作数据，适用于JavaScript应用程序。

语言基础类库提供ConvertXML类，将XML文本转换为JavaScript对象，输入为待转换的XML字符串及转换选项，输出为转换后的JavaScript对象。具体转换选项可见[API参考@ohos.convertxml](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-convertxml)。

#### 注意事项

XML解析及转换需要确保传入的XML数据符合XML标准格式。

#### 开发步骤

以XML转换为JavaScript对象为例，说明如何获取标签值。

1.  引入所需的模块。
    
    import { convertxml } from '@kit.ArkTS';
    
2.  输入待转换的XML，设置转换选项。支持的转换选项及含义，请参见[ConvertOptions](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-convertxml#convertoptions)。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/9b/v3/MGlSNZ7TTtGl_idye1Wfug/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260612T073244Z&HW-CC-Expire=86400&HW-CC-Sign=45A3096FD43324C43A42E67651D8B263FB68561D0957E66227B4F162171A34B4)
    
    请确保传入的XML文本符合标准格式，若包含“&”字符，请使用实体引用“&amp;”替换。
    
    let xml: string =
      '<?xml version="1.0" encoding="utf-8"?>' +
        '<note importance="high" logged="true">' +
        '    <title>Happy</title>' +
        '    <todo>Work</todo>' +
        '    <todo>Play</todo>' +
        '</note>';
    let options: convertxml.ConvertOptions = {
      // trim: false 转换后是否删除文本前后的空格，否
      // declarationKey: "\_declaration" 转换后文件声明使用\_declaration来标识
      // instructionKey: "\_instruction" 转换后指令使用\_instruction标识
      // attributesKey: "\_attributes" 转换后属性使用\_attributes标识
      // textKey: "\_text" 转换后标签值使用\_text标识
      // cdataKey: "\_cdata" 转换后未解析数据使用\_cdata标识
      // docTypeKey: "\_doctype" 转换后文档类型使用\_doctype标识
      // commentKey: "\_comment" 转换后注释使用\_comment标识
      // parentKey: "\_parent" 转换后父类使用\_parent标识
      // typeKey: "\_type" 转换后元素类型使用\_type标识
      // nameKey: "\_name" 转换后标签名称使用\_name标识
      // elementsKey: "\_elements" 转换后元素使用\_elements标识
      trim: false,
      declarationKey: '\_declaration',
      instructionKey: '\_instruction',
      attributesKey: '\_attributes',
      textKey: '\_text',
      cdataKey: '\_cdata',
      doctypeKey: '\_doctype',
      commentKey: '\_comment',
      parentKey: '\_parent',
      typeKey: '\_type',
      nameKey: '\_name',
      elementsKey: '\_elements'
    }
    
3.  调用fastConvertToJSObject函数并打印结果。
    
    let conv: convertxml.ConvertXML = new convertxml.ConvertXML();
    let result: object = conv.fastConvertToJSObject(xml, options);
    let strRes: string = JSON.stringify(result); // 将js对象转换为json字符串，用于显式输出
    console.info(strRes);
    
    输出结果如下所示：
    
    strRes:
    {"\_declaration":{"\_attributes":{"version":"1.0","encoding":"utf-8"}},"\_elements":\[{"\_type":"element","\_name":"note",
     "\_attributes":{"importance":"high","logged":"true"},"\_elements":\[{"\_type":"element","\_name":"title","\_parent":"note",
     "\_elements":\[{"\_type":"text","\_text":"Happy"}\]},{"\_type":"element","\_name":"todo","\_parent":"note","\_elements":
     \[{"\_type":"text","\_text":"Work"}\]},{"\_type":"element","\_name":"todo","\_parent":"note","\_elements":\[{"\_type":"text",
     "\_text":"Play"}\]}\]}\]}