• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.convertxml (xml转换JavaScript)
2
3本模块提供转换xml文本为JavaScript对象的功能。
4
5> **说明:**
6>
7> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9
10## 导入模块
11
12```ts
13import convertxml from '@ohos.convertxml';
14```
15
16## ConvertXML
17
18### convertToJSObject<sup>9+</sup>
19
20convertToJSObject(xml: string, options?: ConvertOptions) : Object
21
22转换xml文本为JavaScript对象。
23
24**系统能力:** SystemCapability.Utils.Lang
25
26**参数:**
27
28| 参数名  | 类型                              | 必填 | 说明            |
29| ------- | --------------------------------- | ---- | --------------- |
30| xml     | string                            | 是   | 传入的xml文本。 |
31| options | [ConvertOptions](#convertoptions) | 否   | 转换选项 , 默认值是ConvertOptions对象 , 由其中各个属性的默认值组成。  |
32
33**返回值:**
34
35| 类型   | 说明                         |
36| ------ | ---------------------------- |
37| Object | 处理后返回的JavaScript对象。 |
38
39**错误码:**
40
41以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。
42
43| 错误码ID | 错误信息 |
44| -------- | -------- |
45| 10200002 | Invalid xml string. |
46
47**示例:**
48
49```ts
50try {
51  let xml =
52    '<?xml version="1.0" encoding="utf-8"?>' +
53      '<note importance="high" logged="true">' +
54      '    <title>Happy</title>' +
55      '    <todo>Work</todo>' +
56      '    <todo>Play</todo>' +
57      '</note>';
58  let conv = new convertxml.ConvertXML()
59  let options: convertxml.ConvertOptions = {
60    trim: false, declarationKey: "_declaration",
61    instructionKey: "_instruction", attributesKey: "_attributes",
62    textKey: "_text", cdataKey: "_cdata", doctypeKey: "_doctype",
63    commentKey: "_comment", parentKey: "_parent", typeKey: "_type",
64    nameKey: "_name", elementsKey: "_elements"
65  }
66  let result = JSON.stringify(conv.convertToJSObject(xml, options));
67  console.log(result);
68} catch (e) {
69  console.log((e as Object).toString());
70}
71// 输出(宽泛型)
72// {"_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"}]}]}]}
73```
74
75### convert<sup>(deprecated)</sup>
76
77convert(xml: string, options?: ConvertOptions) : Object
78
79转换xml文本为JavaScript对象。
80
81> **说明:**
82>
83> 从API version 8开始支持,从API version 9开始废弃,建议使用[convertToJSObject<sup>9+</sup>](#converttojsobject9)替代。
84
85**系统能力:** SystemCapability.Utils.Lang
86
87**参数:**
88
89| 参数名  | 类型                              | 必填 | 说明            |
90| ------- | --------------------------------- | ---- | --------------- |
91| xml     | string                            | 是   | 传入的xml文本。 |
92| options | [ConvertOptions](#convertoptions) | 否   | 转换选项 , 默认值是ConvertOptions对象 , 由其中各个属性的默认值组成。  |
93
94**返回值:**
95
96| 类型   | 说明                         |
97| ------ | ---------------------------- |
98| Object | 处理后返回的JavaScript对象。 |
99
100**示例:**
101
102```ts
103let xml =
104  '<?xml version="1.0" encoding="utf-8"?>' +
105    '<note importance="high" logged="true">' +
106    '    <title>Happy</title>' +
107    '    <todo>Work</todo>' +
108    '    <todo>Play</todo>' +
109    '</note>';
110let conv = new convertxml.ConvertXML();
111let options: convertxml.ConvertOptions = {trim : false, declarationKey:"_declaration",
112  instructionKey : "_instruction", attributesKey : "_attributes",
113  textKey : "_text", cdataKey:"_cdata", doctypeKey : "_doctype",
114  commentKey : "_comment", parentKey : "_parent", typeKey : "_type",
115  nameKey : "_name", elementsKey : "_elements"}
116let result = JSON.stringify(conv.convert(xml, options));
117console.log(result);
118// 输出(宽泛型)
119// {"_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"}]}]}]}
120```
121
122## ConvertOptions
123
124转换选项。
125
126**系统能力:** SystemCapability.Utils.Lang
127
128| 名称              | 类型 | 必填 | 说明                                                        |
129| ----------------- | -------- | ---- | ----------------------------------------------------------- |
130| trim              | boolean  | 是   | 是否修剪位于文本前后的空白字符。                 |
131| ignoreDeclaration | boolean  | 否   | 是否忽略xml写入声明指示,默认false。                        |
132| ignoreInstruction | boolean  | 否   | 是否忽略xml的写入处理指令,默认false。                      |
133| ignoreAttributes  | boolean  | 否   | 是否跨多行打印属性并缩进属性,默认false。                   |
134| ignoreComment     | boolean  | 否   | 是否忽略元素的注释信息,默认false。                         |
135| ignoreCDATA       | boolean  | 否   | 是否忽略元素的CDATA信息,默认false。                        |
136| ignoreDoctype     | boolean  | 否   | 是否忽略元素的Doctype信息,默认false。                      |
137| ignoreText        | boolean  | 否   | 是否忽略元素的文本信息,默认false。                         |
138| declarationKey    | string   | 是   | 用于输出对象中declaration的属性键的名称。 |
139| instructionKey    | string   | 是   | 用于输出对象中instruction的属性键的名称。 |
140| attributesKey     | string   | 是   | 用于输出对象中attributes的属性键的名称。   |
141| textKey           | string   | 是   | 用于输出对象中text的属性键的名称。               |
142| cdataKey          | string   | 是   | 用于输出对象中cdata的属性键的名称             |
143| doctypeKey        | string   | 是   | 用于输出对象中doctype的属性键的名称。         |
144| commentKey        | string   | 是   | 用于输出对象中comment的属性键的名称。         |
145| parentKey         | string   | 是   | 用于输出对象中parent的属性键的名称。           |
146| typeKey           | string   | 是   | 用于输出对象中type的属性键的名称。               |
147| nameKey           | string   | 是   | 用于输出对象中name的属性键的名称。               |
148| elementsKey       | string   | 是   | 用于输出对象中elements的属性键的名称。       |