• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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