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