1# XML转换 2 3 4将XML文本转换为JavaScript对象可以更轻松地处理和操作数据,并且更适合在JavaScript应用程序中使用。 5 6 7语言基础类库提供ConvertXML类将XML文本转换为JavaScript对象,输入为待转换的XML字符串及转换选项,输出为转换后的JavaScript对象。具体转换选项可见[API参考@ohos.convertxml](../reference/apis/js-apis-convertxml.md)。 8 9 10## 注意事项 11 12XML解析及转换需要确保传入的XML数据符合标准格式。 13 14 15## 开发步骤 16 17此处以XML转为JavaScript对象后获取其标签值为例,说明转换效果。 18 191. 引入模块。 20 21 ```ts 22 import convertxml from '@ohos.convertxml'; 23 ``` 24 252. 输入待转换的XML,设置转换选项。 26 27 ```ts 28 let xml: string = 29 '<?xml version="1.0" encoding="utf-8"?>' + 30 '<note importance="high" logged="true">' + 31 ' <title>Happy</title>' + 32 ' <todo>Work</todo>' + 33 ' <todo>Play</todo>' + 34 '</note>'; 35 let options: convertxml.ConvertOptions = { 36 // trim: false 转换后是否删除文本前后的空格,否 37 // declarationKey: "_declaration" 转换后文件声明使用_declaration来标识 38 // instructionKey: "_instruction" 转换后指令使用_instruction标识 39 // attributesKey: "_attributes" 转换后属性使用_attributes标识 40 // textKey: "_text" 转换后标签值使用_text标识 41 // cdataKey: "_cdata" 转换后未解析数据使用_cdata标识 42 // docTypeKey: "_doctype" 转换后文档类型使用_doctype标识 43 // commentKey: "_comment" 转换后注释使用_comment标识 44 // parentKey: "_parent" 转换后父类使用_parent标识 45 // typeKey: "_type" 转换后元素类型使用_type标识 46 // nameKey: "_name" 转换后标签名称使用_name标识 47 // elementsKey: "_elements" 转换后元素使用_elements标识 48 trim: false, 49 declarationKey: "_declaration", 50 instructionKey: "_instruction", 51 attributesKey: "_attributes", 52 textKey: "_text", 53 cdataKey: "_cdata", 54 doctypeKey: "_doctype", 55 commentKey: "_comment", 56 parentKey: "_parent", 57 typeKey: "_type", 58 nameKey: "_name", 59 elementsKey: "_elements" 60 } 61 ``` 62 633. 调用转换函数,打印结果。 64 65 ```ts 66 let conv: convertxml.ConvertXML = new convertxml.ConvertXML(); 67 let result: object = conv.convertToJSObject(xml, options); 68 let strRes: string = JSON.stringify(result); // 将js对象转换为json字符串,用于显式输出 69 console.info(strRes); 70 ``` 71 72 输出结果如下所示: 73 74 ```json 75 strRes: 76 {"_declaration":{"_attributes":{"version":"1.0","encoding":"utf-8"}},"_elements":[{"_type":"element","_name":"note", 77 "_attributes":{"importance":"high","logged":"true"},"_elements":[{"_type":"element","_name":"title", 78 "_elements":[{"_type":"text","_text":"Happy"}]},{"_type":"element","_name":"todo", 79 "_elements":[{"_type":"text","_text":"Work"}]},{"_type":"element","_name":"todo", 80 "_elements":[{"_type":"text","_text":"Play"}]}]}]} 81 ``` 82