1e41f4b71Sopenharmony_ci# @ohos.xml (XML Parsing and Generation)
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ciThe **XML** module provides a series of APIs for converting XML text into JavaScript objects and generating and parsing XML files.
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci> **NOTE**
6e41f4b71Sopenharmony_ci>
7e41f4b71Sopenharmony_ci> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ci
10e41f4b71Sopenharmony_ci## Modules to Import
11e41f4b71Sopenharmony_ci
12e41f4b71Sopenharmony_ci```
13e41f4b71Sopenharmony_ciimport { xml } from '@kit.ArkTS';
14e41f4b71Sopenharmony_ci```
15e41f4b71Sopenharmony_ci
16e41f4b71Sopenharmony_ci## XmlSerializer
17e41f4b71Sopenharmony_ci
18e41f4b71Sopenharmony_ci**XmlSerializer** provides APIs to generate an XML file.
19e41f4b71Sopenharmony_ci
20e41f4b71Sopenharmony_ci### constructor
21e41f4b71Sopenharmony_ci
22e41f4b71Sopenharmony_ciconstructor(buffer: ArrayBuffer | DataView, encoding?: string)
23e41f4b71Sopenharmony_ci
24e41f4b71Sopenharmony_ciA constructor used to create an **XmlSerializer** instance.
25e41f4b71Sopenharmony_ci
26e41f4b71Sopenharmony_ci> **NOTE**
27e41f4b71Sopenharmony_ci>
28e41f4b71Sopenharmony_ci> The buffer is used to temporarily store XML text generated. Its size can be customized. Ensure that the buffer is large enough to hold the generated text.
29e41f4b71Sopenharmony_ci
30e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
31e41f4b71Sopenharmony_ci
32e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
33e41f4b71Sopenharmony_ci
34e41f4b71Sopenharmony_ci**Parameters**
35e41f4b71Sopenharmony_ci
36e41f4b71Sopenharmony_ci| Name  | Type                             | Mandatory| Description                                            |
37e41f4b71Sopenharmony_ci| -------- | --------------------------------- | ---- | ------------------------------------------------ |
38e41f4b71Sopenharmony_ci| buffer   | ArrayBuffer \| DataView | Yes  | **ArrayBuffer** or **DataView** for storing the XML information to set.|
39e41f4b71Sopenharmony_ci| encoding | string                            | No  | Encoding format. The default value is **'utf-8'** (the only format currently supported).              |
40e41f4b71Sopenharmony_ci
41e41f4b71Sopenharmony_ci**Error codes**
42e41f4b71Sopenharmony_ci
43e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md).
44e41f4b71Sopenharmony_ci
45e41f4b71Sopenharmony_ci| ID| Error Message|
46e41f4b71Sopenharmony_ci| -------- | -------- |
47e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
48e41f4b71Sopenharmony_ci
49e41f4b71Sopenharmony_ci**Example**
50e41f4b71Sopenharmony_ci
51e41f4b71Sopenharmony_ci```ts
52e41f4b71Sopenharmony_cilet arrayBuffer = new ArrayBuffer(2048);
53e41f4b71Sopenharmony_cilet thatSer = new xml.XmlSerializer(arrayBuffer, "utf-8");
54e41f4b71Sopenharmony_ci```
55e41f4b71Sopenharmony_ci
56e41f4b71Sopenharmony_ci### setAttributes
57e41f4b71Sopenharmony_ci
58e41f4b71Sopenharmony_cisetAttributes(name: string, value: string): void
59e41f4b71Sopenharmony_ci
60e41f4b71Sopenharmony_ciSets an attribute.
61e41f4b71Sopenharmony_ci
62e41f4b71Sopenharmony_ci> **NOTE**
63e41f4b71Sopenharmony_ci>
64e41f4b71Sopenharmony_ci> This API does not perform standard XML verification on the data added. Ensure that the data to add complies with the XML specifications. For example, as stipulated in the specifications, you are not allowed to add an attribute name starting with a digit or add multiple attribute names with the same name.
65e41f4b71Sopenharmony_ci
66e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
67e41f4b71Sopenharmony_ci
68e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
69e41f4b71Sopenharmony_ci
70e41f4b71Sopenharmony_ci**Parameters**
71e41f4b71Sopenharmony_ci
72e41f4b71Sopenharmony_ci| Name| Type  | Mandatory| Description           |
73e41f4b71Sopenharmony_ci| ------ | ------ | ---- | --------------- |
74e41f4b71Sopenharmony_ci| name   | string | Yes  | Key of the attribute.  |
75e41f4b71Sopenharmony_ci| value  | string | Yes  | Value of the attribute.|
76e41f4b71Sopenharmony_ci
77e41f4b71Sopenharmony_ci**Error codes**
78e41f4b71Sopenharmony_ci
79e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md).
80e41f4b71Sopenharmony_ci
81e41f4b71Sopenharmony_ci| ID| Error Message|
82e41f4b71Sopenharmony_ci| -------- | -------- |
83e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
84e41f4b71Sopenharmony_ci
85e41f4b71Sopenharmony_ci**Example**
86e41f4b71Sopenharmony_ci
87e41f4b71Sopenharmony_ci```ts
88e41f4b71Sopenharmony_ciimport { util } from '@kit.ArkTS';
89e41f4b71Sopenharmony_ci
90e41f4b71Sopenharmony_cilet arrayBuffer = new ArrayBuffer(2048);
91e41f4b71Sopenharmony_cilet thatSer = new xml.XmlSerializer(arrayBuffer);
92e41f4b71Sopenharmony_cithatSer.startElement("note");
93e41f4b71Sopenharmony_cithatSer.setAttributes("importance", "high");
94e41f4b71Sopenharmony_cithatSer.endElement();
95e41f4b71Sopenharmony_cilet uint8 = new Uint8Array(arrayBuffer);
96e41f4b71Sopenharmony_cilet result = util.TextDecoder.create().decodeToString(uint8);
97e41f4b71Sopenharmony_ciconsole.log(result); // <note importance="high"/>
98e41f4b71Sopenharmony_ci```
99e41f4b71Sopenharmony_ci
100e41f4b71Sopenharmony_ci### addEmptyElement
101e41f4b71Sopenharmony_ci
102e41f4b71Sopenharmony_ciaddEmptyElement(name: string): void
103e41f4b71Sopenharmony_ci
104e41f4b71Sopenharmony_ciAdds an empty element.
105e41f4b71Sopenharmony_ci
106e41f4b71Sopenharmony_ci> **NOTE**
107e41f4b71Sopenharmony_ci>
108e41f4b71Sopenharmony_ci> This API does not perform standard XML verification on the data added. Ensure that the data to add complies with the XML specifications. For example, as stipulated in the specifications, you are not allowed to add an attribute name starting with a digit.
109e41f4b71Sopenharmony_ci
110e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
111e41f4b71Sopenharmony_ci
112e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
113e41f4b71Sopenharmony_ci
114e41f4b71Sopenharmony_ci**Parameters**
115e41f4b71Sopenharmony_ci
116e41f4b71Sopenharmony_ci| Name| Type  | Mandatory| Description              |
117e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ------------------ |
118e41f4b71Sopenharmony_ci| name   | string | Yes  | Name of the empty element to add.|
119e41f4b71Sopenharmony_ci
120e41f4b71Sopenharmony_ci**Error codes**
121e41f4b71Sopenharmony_ci
122e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md).
123e41f4b71Sopenharmony_ci
124e41f4b71Sopenharmony_ci| ID| Error Message|
125e41f4b71Sopenharmony_ci| -------- | -------- |
126e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
127e41f4b71Sopenharmony_ci
128e41f4b71Sopenharmony_ci**Example**
129e41f4b71Sopenharmony_ci
130e41f4b71Sopenharmony_ci```ts
131e41f4b71Sopenharmony_ciimport { util } from '@kit.ArkTS';
132e41f4b71Sopenharmony_ci
133e41f4b71Sopenharmony_cilet arrayBuffer = new ArrayBuffer(2048);
134e41f4b71Sopenharmony_cilet thatSer = new xml.XmlSerializer(arrayBuffer);
135e41f4b71Sopenharmony_cithatSer.addEmptyElement("d");
136e41f4b71Sopenharmony_cilet uint8 = new Uint8Array(arrayBuffer);
137e41f4b71Sopenharmony_cilet result = util.TextDecoder.create().decodeToString(uint8);
138e41f4b71Sopenharmony_ciconsole.log(result); // <d/>
139e41f4b71Sopenharmony_ci```
140e41f4b71Sopenharmony_ci
141e41f4b71Sopenharmony_ci### setDeclaration
142e41f4b71Sopenharmony_ci
143e41f4b71Sopenharmony_cisetDeclaration(): void
144e41f4b71Sopenharmony_ci
145e41f4b71Sopenharmony_ciSets a file declaration with encoding.
146e41f4b71Sopenharmony_ci
147e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
148e41f4b71Sopenharmony_ci
149e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
150e41f4b71Sopenharmony_ci
151e41f4b71Sopenharmony_ci**Example**
152e41f4b71Sopenharmony_ci
153e41f4b71Sopenharmony_ci```ts
154e41f4b71Sopenharmony_ciimport { util } from '@kit.ArkTS';
155e41f4b71Sopenharmony_ci
156e41f4b71Sopenharmony_cilet arrayBuffer = new ArrayBuffer(2048);
157e41f4b71Sopenharmony_cilet thatSer = new xml.XmlSerializer(arrayBuffer);
158e41f4b71Sopenharmony_cithatSer.setDeclaration();
159e41f4b71Sopenharmony_cilet uint8 = new Uint8Array(arrayBuffer);
160e41f4b71Sopenharmony_cilet result = util.TextDecoder.create().decodeToString(uint8);
161e41f4b71Sopenharmony_ciconsole.log(result);
162e41f4b71Sopenharmony_ci// <?xml version="1.0" encoding="utf-8"?>
163e41f4b71Sopenharmony_ci```
164e41f4b71Sopenharmony_ci
165e41f4b71Sopenharmony_ci### startElement
166e41f4b71Sopenharmony_ci
167e41f4b71Sopenharmony_cistartElement(name: string): void
168e41f4b71Sopenharmony_ci
169e41f4b71Sopenharmony_ciWrites the start tag based on the given element name.
170e41f4b71Sopenharmony_ci
171e41f4b71Sopenharmony_ci> **NOTE**
172e41f4b71Sopenharmony_ci>
173e41f4b71Sopenharmony_ci>- After calling this API, you must call [endElement](#endelement) to write the end flag to ensure that the node is closed correctly.
174e41f4b71Sopenharmony_ci>
175e41f4b71Sopenharmony_ci>- This API does not perform standard XML verification on the data added. Ensure that the data to add complies with the XML specifications. For example, as stipulated in the specifications, you are not allowed to add an attribute name starting with a digit.
176e41f4b71Sopenharmony_ci
177e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
178e41f4b71Sopenharmony_ci
179e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
180e41f4b71Sopenharmony_ci
181e41f4b71Sopenharmony_ci**Parameters**
182e41f4b71Sopenharmony_ci
183e41f4b71Sopenharmony_ci| Name| Type  | Mandatory| Description              |
184e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ------------------ |
185e41f4b71Sopenharmony_ci| name   | string | Yes  | Name of the element.|
186e41f4b71Sopenharmony_ci
187e41f4b71Sopenharmony_ci**Error codes**
188e41f4b71Sopenharmony_ci
189e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md).
190e41f4b71Sopenharmony_ci
191e41f4b71Sopenharmony_ci| ID| Error Message|
192e41f4b71Sopenharmony_ci| -------- | -------- |
193e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
194e41f4b71Sopenharmony_ci
195e41f4b71Sopenharmony_ci**Example**
196e41f4b71Sopenharmony_ci
197e41f4b71Sopenharmony_ci```ts
198e41f4b71Sopenharmony_ciimport { util } from '@kit.ArkTS';
199e41f4b71Sopenharmony_ci
200e41f4b71Sopenharmony_cilet arrayBuffer = new ArrayBuffer(2048);
201e41f4b71Sopenharmony_cilet thatSer = new xml.XmlSerializer(arrayBuffer);
202e41f4b71Sopenharmony_cithatSer.startElement("note");
203e41f4b71Sopenharmony_cithatSer.setText("Happy");
204e41f4b71Sopenharmony_cithatSer.endElement();
205e41f4b71Sopenharmony_cilet uint8 = new Uint8Array(arrayBuffer);
206e41f4b71Sopenharmony_cilet result = util.TextDecoder.create().decodeToString(uint8);
207e41f4b71Sopenharmony_ciconsole.log(result);
208e41f4b71Sopenharmony_ci// <note>Happy</note>
209e41f4b71Sopenharmony_ci```
210e41f4b71Sopenharmony_ci
211e41f4b71Sopenharmony_ci### endElement
212e41f4b71Sopenharmony_ci
213e41f4b71Sopenharmony_ciendElement(): void
214e41f4b71Sopenharmony_ci
215e41f4b71Sopenharmony_ciWrites the end tag of the element.
216e41f4b71Sopenharmony_ci
217e41f4b71Sopenharmony_ci> **NOTE**
218e41f4b71Sopenharmony_ci>
219e41f4b71Sopenharmony_ci> Before calling this API, you must call [startElement](#startelement) to write the start flag.
220e41f4b71Sopenharmony_ci
221e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
222e41f4b71Sopenharmony_ci
223e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
224e41f4b71Sopenharmony_ci
225e41f4b71Sopenharmony_ci**Example**
226e41f4b71Sopenharmony_ci
227e41f4b71Sopenharmony_ci```ts
228e41f4b71Sopenharmony_ciimport { util } from '@kit.ArkTS';
229e41f4b71Sopenharmony_ci
230e41f4b71Sopenharmony_cilet arrayBuffer = new ArrayBuffer(2048);
231e41f4b71Sopenharmony_cilet thatSer = new xml.XmlSerializer(arrayBuffer);
232e41f4b71Sopenharmony_cithatSer.startElement("note");
233e41f4b71Sopenharmony_cithatSer.setText("Happy");
234e41f4b71Sopenharmony_cithatSer.endElement();
235e41f4b71Sopenharmony_cilet uint8 = new Uint8Array(arrayBuffer);
236e41f4b71Sopenharmony_cilet result = util.TextDecoder.create().decodeToString(uint8);
237e41f4b71Sopenharmony_ciconsole.log(result);
238e41f4b71Sopenharmony_ci// <note>Happy</note>
239e41f4b71Sopenharmony_ci```
240e41f4b71Sopenharmony_ci
241e41f4b71Sopenharmony_ci### setNamespace
242e41f4b71Sopenharmony_ci
243e41f4b71Sopenharmony_cisetNamespace(prefix: string, namespace: string): void
244e41f4b71Sopenharmony_ci
245e41f4b71Sopenharmony_ciSets the namespace for an element tag.
246e41f4b71Sopenharmony_ci
247e41f4b71Sopenharmony_ci> **NOTE**
248e41f4b71Sopenharmony_ci>
249e41f4b71Sopenharmony_ci> This API does not perform standard XML verification on the data added. Ensure that the data to add complies with the XML specifications. For example, as stipulated in the specifications, you are not allowed to add a namespace starting with a digit or set multiple namespaces for the same element.
250e41f4b71Sopenharmony_ci
251e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
252e41f4b71Sopenharmony_ci
253e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
254e41f4b71Sopenharmony_ci
255e41f4b71Sopenharmony_ci**Parameters**
256e41f4b71Sopenharmony_ci
257e41f4b71Sopenharmony_ci| Name   | Type  | Mandatory| Description                          |
258e41f4b71Sopenharmony_ci| --------- | ------ | ---- | ------------------------------ |
259e41f4b71Sopenharmony_ci| prefix    | string | Yes  | Prefix of the element and its child elements.    |
260e41f4b71Sopenharmony_ci| namespace | string | Yes  | Namespace to set.|
261e41f4b71Sopenharmony_ci
262e41f4b71Sopenharmony_ci**Error codes**
263e41f4b71Sopenharmony_ci
264e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md).
265e41f4b71Sopenharmony_ci
266e41f4b71Sopenharmony_ci| ID| Error Message|
267e41f4b71Sopenharmony_ci| -------- | -------- |
268e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
269e41f4b71Sopenharmony_ci
270e41f4b71Sopenharmony_ci**Example**
271e41f4b71Sopenharmony_ci
272e41f4b71Sopenharmony_ci```ts
273e41f4b71Sopenharmony_ciimport { util } from '@kit.ArkTS';
274e41f4b71Sopenharmony_ci
275e41f4b71Sopenharmony_cilet arrayBuffer = new ArrayBuffer(2048);
276e41f4b71Sopenharmony_cilet thatSer = new xml.XmlSerializer(arrayBuffer);
277e41f4b71Sopenharmony_cithatSer.setNamespace("h", "http://www.w3.org/TR/html4/");
278e41f4b71Sopenharmony_cithatSer.startElement("note");
279e41f4b71Sopenharmony_cithatSer.endElement();
280e41f4b71Sopenharmony_cilet uint8 = new Uint8Array(arrayBuffer);
281e41f4b71Sopenharmony_cilet result = util.TextDecoder.create().decodeToString(uint8);
282e41f4b71Sopenharmony_ciconsole.log(result);
283e41f4b71Sopenharmony_ci// <h:note xmlns:h="http://www.w3.org/TR/html4/"/>
284e41f4b71Sopenharmony_ci```
285e41f4b71Sopenharmony_ci
286e41f4b71Sopenharmony_ci### setComment
287e41f4b71Sopenharmony_ci
288e41f4b71Sopenharmony_cisetComment(text: string): void
289e41f4b71Sopenharmony_ci
290e41f4b71Sopenharmony_ciSets a comment.
291e41f4b71Sopenharmony_ci
292e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
293e41f4b71Sopenharmony_ci
294e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
295e41f4b71Sopenharmony_ci
296e41f4b71Sopenharmony_ci**Parameters**
297e41f4b71Sopenharmony_ci
298e41f4b71Sopenharmony_ci| Name| Type  | Mandatory| Description                |
299e41f4b71Sopenharmony_ci| ------ | ------ | ---- | -------------------- |
300e41f4b71Sopenharmony_ci| text   | string | Yes  | Comment to set.|
301e41f4b71Sopenharmony_ci
302e41f4b71Sopenharmony_ci**Error codes**
303e41f4b71Sopenharmony_ci
304e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md).
305e41f4b71Sopenharmony_ci
306e41f4b71Sopenharmony_ci| ID| Error Message|
307e41f4b71Sopenharmony_ci| -------- | -------- |
308e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
309e41f4b71Sopenharmony_ci
310e41f4b71Sopenharmony_ci**Example**
311e41f4b71Sopenharmony_ci
312e41f4b71Sopenharmony_ci```ts
313e41f4b71Sopenharmony_ciimport { util } from '@kit.ArkTS';
314e41f4b71Sopenharmony_ci
315e41f4b71Sopenharmony_cilet arrayBuffer = new ArrayBuffer(2048);
316e41f4b71Sopenharmony_cilet thatSer = new xml.XmlSerializer(arrayBuffer);
317e41f4b71Sopenharmony_cithatSer.setComment("Hello, World!");
318e41f4b71Sopenharmony_cilet uint8 = new Uint8Array(arrayBuffer);
319e41f4b71Sopenharmony_cilet result = util.TextDecoder.create().decodeToString(uint8);
320e41f4b71Sopenharmony_ciconsole.log(result); // <!--Hello, World!-->
321e41f4b71Sopenharmony_ci```
322e41f4b71Sopenharmony_ci
323e41f4b71Sopenharmony_ci### setCDATA
324e41f4b71Sopenharmony_ci
325e41f4b71Sopenharmony_cisetCDATA(text: string): void
326e41f4b71Sopenharmony_ci
327e41f4b71Sopenharmony_ciAdds data to the CDATA tag. The structure of the generated CDATA tag is "\<! <![CDATA\["+ Data added + "\]\]\>".
328e41f4b71Sopenharmony_ci
329e41f4b71Sopenharmony_ci> **NOTE**
330e41f4b71Sopenharmony_ci>
331e41f4b71Sopenharmony_ci> This API does not perform standard XML verification on the data added. Ensure that the data to add complies with the XML specifications. For example, as stipulated in the specifications, you are not allowed to add data that contains the string \]\]\> to the CDATA tag.
332e41f4b71Sopenharmony_ci
333e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
334e41f4b71Sopenharmony_ci
335e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
336e41f4b71Sopenharmony_ci
337e41f4b71Sopenharmony_ci**Parameters**
338e41f4b71Sopenharmony_ci
339e41f4b71Sopenharmony_ci| Name| Type  | Mandatory| Description             |
340e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ----------------- |
341e41f4b71Sopenharmony_ci| text   | string | Yes  | CDATA data to set.|
342e41f4b71Sopenharmony_ci
343e41f4b71Sopenharmony_ci**Error codes**
344e41f4b71Sopenharmony_ci
345e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md).
346e41f4b71Sopenharmony_ci
347e41f4b71Sopenharmony_ci| ID| Error Message|
348e41f4b71Sopenharmony_ci| -------- | -------- |
349e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
350e41f4b71Sopenharmony_ci
351e41f4b71Sopenharmony_ci**Example**
352e41f4b71Sopenharmony_ci
353e41f4b71Sopenharmony_ci```ts
354e41f4b71Sopenharmony_ciimport { util } from '@kit.ArkTS';
355e41f4b71Sopenharmony_ci
356e41f4b71Sopenharmony_cilet arrayBuffer = new ArrayBuffer(2048);
357e41f4b71Sopenharmony_cilet thatSer = new xml.XmlSerializer(arrayBuffer);
358e41f4b71Sopenharmony_cithatSer.setCDATA('root SYSTEM')
359e41f4b71Sopenharmony_cilet uint8 = new Uint8Array(arrayBuffer);
360e41f4b71Sopenharmony_cilet result = util.TextDecoder.create().decodeToString(uint8);
361e41f4b71Sopenharmony_ciconsole.log(result); // <![CDATA[root SYSTEM]]>
362e41f4b71Sopenharmony_ci```
363e41f4b71Sopenharmony_ci
364e41f4b71Sopenharmony_ci### setText
365e41f4b71Sopenharmony_ci
366e41f4b71Sopenharmony_cisetText(text: string): void
367e41f4b71Sopenharmony_ci
368e41f4b71Sopenharmony_ciSets a tag value.
369e41f4b71Sopenharmony_ci
370e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
371e41f4b71Sopenharmony_ci
372e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
373e41f4b71Sopenharmony_ci
374e41f4b71Sopenharmony_ci**Parameters**
375e41f4b71Sopenharmony_ci
376e41f4b71Sopenharmony_ci| Name| Type  | Mandatory| Description            |
377e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ---------------- |
378e41f4b71Sopenharmony_ci| text   | string | Yes  | Tag value to set, which is the content of the **text** attribute.|
379e41f4b71Sopenharmony_ci
380e41f4b71Sopenharmony_ci**Error codes**
381e41f4b71Sopenharmony_ci
382e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md).
383e41f4b71Sopenharmony_ci
384e41f4b71Sopenharmony_ci| ID| Error Message|
385e41f4b71Sopenharmony_ci| -------- | -------- |
386e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
387e41f4b71Sopenharmony_ci
388e41f4b71Sopenharmony_ci**Example**
389e41f4b71Sopenharmony_ci
390e41f4b71Sopenharmony_ci```ts
391e41f4b71Sopenharmony_ciimport { util } from '@kit.ArkTS';
392e41f4b71Sopenharmony_ci
393e41f4b71Sopenharmony_cilet arrayBuffer = new ArrayBuffer(2048);
394e41f4b71Sopenharmony_cilet thatSer = new xml.XmlSerializer(arrayBuffer);
395e41f4b71Sopenharmony_cithatSer.startElement("note");
396e41f4b71Sopenharmony_cithatSer.setAttributes("importance", "high");
397e41f4b71Sopenharmony_cithatSer.setText("Happy");
398e41f4b71Sopenharmony_cithatSer.endElement();
399e41f4b71Sopenharmony_cilet uint8 = new Uint8Array(arrayBuffer);
400e41f4b71Sopenharmony_cilet result = util.TextDecoder.create().decodeToString(uint8);
401e41f4b71Sopenharmony_ciconsole.log(result); // <note importance="high">Happy</note>
402e41f4b71Sopenharmony_ci```
403e41f4b71Sopenharmony_ci
404e41f4b71Sopenharmony_ci### setDocType
405e41f4b71Sopenharmony_ci
406e41f4b71Sopenharmony_cisetDocType(text: string): void
407e41f4b71Sopenharmony_ci
408e41f4b71Sopenharmony_ciSets a document type.
409e41f4b71Sopenharmony_ci
410e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
411e41f4b71Sopenharmony_ci
412e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
413e41f4b71Sopenharmony_ci
414e41f4b71Sopenharmony_ci**Parameters**
415e41f4b71Sopenharmony_ci
416e41f4b71Sopenharmony_ci| Name| Type  | Mandatory| Description               |
417e41f4b71Sopenharmony_ci| ------ | ------ | ---- | ------------------- |
418e41f4b71Sopenharmony_ci| text   | string | Yes  | Content of **DocType** to set.|
419e41f4b71Sopenharmony_ci
420e41f4b71Sopenharmony_ci**Error codes**
421e41f4b71Sopenharmony_ci
422e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md).
423e41f4b71Sopenharmony_ci
424e41f4b71Sopenharmony_ci| ID| Error Message|
425e41f4b71Sopenharmony_ci| -------- | -------- |
426e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
427e41f4b71Sopenharmony_ci
428e41f4b71Sopenharmony_ci**Example**
429e41f4b71Sopenharmony_ci
430e41f4b71Sopenharmony_ci```ts
431e41f4b71Sopenharmony_ciimport { util } from '@kit.ArkTS';
432e41f4b71Sopenharmony_ci
433e41f4b71Sopenharmony_cilet arrayBuffer = new ArrayBuffer(2048);
434e41f4b71Sopenharmony_cilet thatSer = new xml.XmlSerializer(arrayBuffer);
435e41f4b71Sopenharmony_cithatSer.setDocType('root SYSTEM "http://www.test.org/test.dtd"');
436e41f4b71Sopenharmony_cilet uint8 = new Uint8Array(arrayBuffer);
437e41f4b71Sopenharmony_cilet result = util.TextDecoder.create().decodeToString(uint8);
438e41f4b71Sopenharmony_ciconsole.log(result); // <!DOCTYPE root SYSTEM "http://www.test.org/test.dtd">
439e41f4b71Sopenharmony_ci```
440e41f4b71Sopenharmony_ci
441e41f4b71Sopenharmony_ci## XmlPullParser
442e41f4b71Sopenharmony_ci
443e41f4b71Sopenharmony_ciImplements XML file parsing.
444e41f4b71Sopenharmony_ci
445e41f4b71Sopenharmony_ci### constructor
446e41f4b71Sopenharmony_ci
447e41f4b71Sopenharmony_ciconstructor(buffer: ArrayBuffer | DataView, encoding?: string)
448e41f4b71Sopenharmony_ci
449e41f4b71Sopenharmony_ciCreates and returns an **XmlPullParser** object.
450e41f4b71Sopenharmony_ci
451e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
452e41f4b71Sopenharmony_ci
453e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
454e41f4b71Sopenharmony_ci
455e41f4b71Sopenharmony_ci**Parameters**
456e41f4b71Sopenharmony_ci
457e41f4b71Sopenharmony_ci| Name  | Type                             | Mandatory| Description                                      |
458e41f4b71Sopenharmony_ci| -------- | --------------------------------- | ---- | ------------------------------------------ |
459e41f4b71Sopenharmony_ci| buffer   | ArrayBuffer \| DataView | Yes  | XML text information to be parsed.|
460e41f4b71Sopenharmony_ci| encoding | string                            | No  | Encoding format. The default value is **'utf-8'** (the only format currently supported).        |
461e41f4b71Sopenharmony_ci
462e41f4b71Sopenharmony_ci**Error codes**
463e41f4b71Sopenharmony_ci
464e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md).
465e41f4b71Sopenharmony_ci
466e41f4b71Sopenharmony_ci| ID| Error Message|
467e41f4b71Sopenharmony_ci| -------- | -------- |
468e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
469e41f4b71Sopenharmony_ci
470e41f4b71Sopenharmony_ci**Example**
471e41f4b71Sopenharmony_ci
472e41f4b71Sopenharmony_ci```ts
473e41f4b71Sopenharmony_ciimport { util } from '@kit.ArkTS';
474e41f4b71Sopenharmony_ci
475e41f4b71Sopenharmony_cilet strXml = '<title>Happy</title>'
476e41f4b71Sopenharmony_cilet textEncoder = new util.TextEncoder();
477e41f4b71Sopenharmony_cilet arrbuffer = textEncoder.encodeInto(strXml);
478e41f4b71Sopenharmony_cilet that = new xml.XmlPullParser(arrbuffer.buffer as object as ArrayBuffer, 'UTF-8');
479e41f4b71Sopenharmony_ci```
480e41f4b71Sopenharmony_ci
481e41f4b71Sopenharmony_ci### parse
482e41f4b71Sopenharmony_ci
483e41f4b71Sopenharmony_ciparse(option: ParseOptions): void
484e41f4b71Sopenharmony_ci
485e41f4b71Sopenharmony_ciParses XML information.
486e41f4b71Sopenharmony_ci
487e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
488e41f4b71Sopenharmony_ci
489e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
490e41f4b71Sopenharmony_ci
491e41f4b71Sopenharmony_ci**Parameters**
492e41f4b71Sopenharmony_ci
493e41f4b71Sopenharmony_ci| Name| Type                         | Mandatory| Description                            |
494e41f4b71Sopenharmony_ci| ------ | ----------------------------- | ---- | -------------------------------- |
495e41f4b71Sopenharmony_ci| option | [ParseOptions](#parseoptions) | Yes  | Options for controlling and obtaining the parsed information.|
496e41f4b71Sopenharmony_ci
497e41f4b71Sopenharmony_ci**Error codes**
498e41f4b71Sopenharmony_ci
499e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md).
500e41f4b71Sopenharmony_ci
501e41f4b71Sopenharmony_ci| ID| Error Message|
502e41f4b71Sopenharmony_ci| -------- | -------- |
503e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
504e41f4b71Sopenharmony_ci
505e41f4b71Sopenharmony_ci**Example**
506e41f4b71Sopenharmony_ci
507e41f4b71Sopenharmony_ci```ts
508e41f4b71Sopenharmony_ciimport { util } from '@kit.ArkTS';
509e41f4b71Sopenharmony_ci
510e41f4b71Sopenharmony_cilet strXml =
511e41f4b71Sopenharmony_ci  '<?xml version="1.0" encoding="utf-8"?>' +
512e41f4b71Sopenharmony_ci  '<note importance="high" logged="true">' +
513e41f4b71Sopenharmony_ci    '<company>John &amp; Hans</company>' +
514e41f4b71Sopenharmony_ci    '<title>Happy</title>' +
515e41f4b71Sopenharmony_ci  '</note>';
516e41f4b71Sopenharmony_cilet textEncoder = new util.TextEncoder();
517e41f4b71Sopenharmony_cilet arrbuffer = textEncoder.encodeInto(strXml);
518e41f4b71Sopenharmony_cilet that = new xml.XmlPullParser(arrbuffer.buffer as object as ArrayBuffer, 'UTF-8');
519e41f4b71Sopenharmony_cilet str = '';
520e41f4b71Sopenharmony_cifunction func(name: string, value: string) {
521e41f4b71Sopenharmony_ci  str = name + value;
522e41f4b71Sopenharmony_ci  console.log(str);
523e41f4b71Sopenharmony_ci  return true;
524e41f4b71Sopenharmony_ci}
525e41f4b71Sopenharmony_cilet options: xml.ParseOptions = {supportDoctype:true, ignoreNameSpace:true, tagValueCallbackFunction:func}
526e41f4b71Sopenharmony_cithat.parse(options);
527e41f4b71Sopenharmony_ci// note
528e41f4b71Sopenharmony_ci// company
529e41f4b71Sopenharmony_ci// John & Hans
530e41f4b71Sopenharmony_ci// company
531e41f4b71Sopenharmony_ci// title
532e41f4b71Sopenharmony_ci// Happy
533e41f4b71Sopenharmony_ci// title
534e41f4b71Sopenharmony_ci// note
535e41f4b71Sopenharmony_ci```
536e41f4b71Sopenharmony_ci
537e41f4b71Sopenharmony_ci## ParseOptions
538e41f4b71Sopenharmony_ci
539e41f4b71Sopenharmony_ciDefines the XML parsing options.
540e41f4b71Sopenharmony_ci
541e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
542e41f4b71Sopenharmony_ci
543e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
544e41f4b71Sopenharmony_ci
545e41f4b71Sopenharmony_ci
546e41f4b71Sopenharmony_ci| Name                          | Type                                                        | Mandatory| Description                                   |
547e41f4b71Sopenharmony_ci| ------------------------------ | ------------------------------------------------------------ | ---- | --------------------------------------- |
548e41f4b71Sopenharmony_ci| supportDoctype                 | boolean                                                      | No  | Whether to ignore the document type. The default value is **false**, indicating that the document type is not parsed.|
549e41f4b71Sopenharmony_ci| ignoreNameSpace                | boolean                                                      | No  | Whether to ignore the namespace. The default value is **false**, indicating that the namespace is parsed.|
550e41f4b71Sopenharmony_ci| tagValueCallbackFunction       | (name: string, value: string) =&gt; boolean | No  | Callback used to return **tagValue** for parsing the tag and tag value. The default value is **undefined**, indicating that the tag and tag value are not parsed.|
551e41f4b71Sopenharmony_ci| attributeValueCallbackFunction | (name: string, value: string) =&gt; boolean | No  | Callback used to return **attributeValue** for parsing the attribute and attribute value. The default value is **undefined**, indicating that the attribute and attribute value are not parsed.|
552e41f4b71Sopenharmony_ci| tokenValueCallbackFunction     | (eventType: [EventType](#eventtype), value: [ParseInfo](#parseinfo)) =&gt; boolean | No  | Callback used to return **tokenValue** for parsing the [EventType](#eventtype) and [ParseInfo](#parseinfo) attributes. The default value is **undefined**, indicating that the **EventType** and **ParseInfo** attribute are not parsed.|
553e41f4b71Sopenharmony_ci
554e41f4b71Sopenharmony_ci## ParseInfo
555e41f4b71Sopenharmony_ci
556e41f4b71Sopenharmony_ciProvides APIs to manage the parsed XML information.
557e41f4b71Sopenharmony_ci
558e41f4b71Sopenharmony_ci
559e41f4b71Sopenharmony_ci### getColumnNumber
560e41f4b71Sopenharmony_ci
561e41f4b71Sopenharmony_cigetColumnNumber(): number
562e41f4b71Sopenharmony_ci
563e41f4b71Sopenharmony_ciObtains the column line number, starting from 1.
564e41f4b71Sopenharmony_ci
565e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
566e41f4b71Sopenharmony_ci
567e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
568e41f4b71Sopenharmony_ci
569e41f4b71Sopenharmony_ci**Return value**
570e41f4b71Sopenharmony_ci
571e41f4b71Sopenharmony_ci| Type  | Description          |
572e41f4b71Sopenharmony_ci| ------ | -------------- |
573e41f4b71Sopenharmony_ci| number | Column number obtained.|
574e41f4b71Sopenharmony_ci
575e41f4b71Sopenharmony_ci**Example**
576e41f4b71Sopenharmony_ci
577e41f4b71Sopenharmony_ci```ts
578e41f4b71Sopenharmony_ciimport { util } from '@kit.ArkTS';
579e41f4b71Sopenharmony_ci
580e41f4b71Sopenharmony_cilet strXml = '<?xml version="1.0" encoding="utf-8"?><note>Happy</note>';
581e41f4b71Sopenharmony_cilet textEncoder = new util.TextEncoder();
582e41f4b71Sopenharmony_cilet arrbuffer = textEncoder.encodeInto(strXml);
583e41f4b71Sopenharmony_cilet that = new xml.XmlPullParser(arrbuffer.buffer as object as ArrayBuffer);
584e41f4b71Sopenharmony_cilet str = "";
585e41f4b71Sopenharmony_cifunction func(key: xml.EventType, value: xml.ParseInfo) {
586e41f4b71Sopenharmony_ci  str += 'key:' + key + ' value:' + value.getColumnNumber() + ' ';
587e41f4b71Sopenharmony_ci  return true; // Determines whether to continually parse, which is used to continue or terminate parsing.
588e41f4b71Sopenharmony_ci}
589e41f4b71Sopenharmony_cilet options: xml.ParseOptions = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func}
590e41f4b71Sopenharmony_cithat.parse(options);
591e41f4b71Sopenharmony_ciconsole.log(str);
592e41f4b71Sopenharmony_ci// key:0 value:1 key:2 value:45 key:4 value:50 key:3 value:57 key:1 value:57
593e41f4b71Sopenharmony_ci```
594e41f4b71Sopenharmony_ci
595e41f4b71Sopenharmony_ci### getDepth
596e41f4b71Sopenharmony_ci
597e41f4b71Sopenharmony_cigetDepth(): number
598e41f4b71Sopenharmony_ci
599e41f4b71Sopenharmony_ciObtains the depth of this element.
600e41f4b71Sopenharmony_ci
601e41f4b71Sopenharmony_ci> **NOTE**
602e41f4b71Sopenharmony_ci>
603e41f4b71Sopenharmony_ci> The depth of the whitespace character event in the tag is the same as the depth of the tag.
604e41f4b71Sopenharmony_ci
605e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
606e41f4b71Sopenharmony_ci
607e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
608e41f4b71Sopenharmony_ci
609e41f4b71Sopenharmony_ci**Return value**
610e41f4b71Sopenharmony_ci
611e41f4b71Sopenharmony_ci| Type  | Description                |
612e41f4b71Sopenharmony_ci| ------ | -------------------- |
613e41f4b71Sopenharmony_ci| number | Depth obtained.|
614e41f4b71Sopenharmony_ci
615e41f4b71Sopenharmony_ci**Example**
616e41f4b71Sopenharmony_ci
617e41f4b71Sopenharmony_ci```ts
618e41f4b71Sopenharmony_ciimport { util } from '@kit.ArkTS';
619e41f4b71Sopenharmony_ci
620e41f4b71Sopenharmony_cilet strXml =
621e41f4b71Sopenharmony_ci  '<?xml version="1.0" encoding="utf-8"?>' +
622e41f4b71Sopenharmony_ci  '<note importance="high">' +
623e41f4b71Sopenharmony_ci    '<title>Happy</title>' +
624e41f4b71Sopenharmony_ci  '</note>';
625e41f4b71Sopenharmony_cilet textEncoder = new util.TextEncoder();
626e41f4b71Sopenharmony_cilet arrbuffer = textEncoder.encodeInto(strXml);
627e41f4b71Sopenharmony_cilet that = new xml.XmlPullParser(arrbuffer.buffer as object as ArrayBuffer);
628e41f4b71Sopenharmony_cilet str = "";
629e41f4b71Sopenharmony_cifunction func(key: xml.EventType, value: xml.ParseInfo) {
630e41f4b71Sopenharmony_ci  str += 'key:' + key + ' value:' + value.getDepth() + ' ';
631e41f4b71Sopenharmony_ci  return true; // Determines whether to continually parse, which is used to continue or terminate parsing.
632e41f4b71Sopenharmony_ci}
633e41f4b71Sopenharmony_cilet options: xml.ParseOptions = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func}
634e41f4b71Sopenharmony_cithat.parse(options);
635e41f4b71Sopenharmony_ciconsole.log(str);
636e41f4b71Sopenharmony_ci// key:0 value:0 key:2 value:1 key:2 value:2 key:4 value:2 key:3 value:2 key:3 value:1 key:1 value:0
637e41f4b71Sopenharmony_ci```
638e41f4b71Sopenharmony_ci
639e41f4b71Sopenharmony_ci### getLineNumber
640e41f4b71Sopenharmony_ci
641e41f4b71Sopenharmony_cigetLineNumber(): number
642e41f4b71Sopenharmony_ci
643e41f4b71Sopenharmony_ciObtains the current line number, starting from 1.
644e41f4b71Sopenharmony_ci
645e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
646e41f4b71Sopenharmony_ci
647e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
648e41f4b71Sopenharmony_ci
649e41f4b71Sopenharmony_ci**Return value**
650e41f4b71Sopenharmony_ci
651e41f4b71Sopenharmony_ci| Type  | Description          |
652e41f4b71Sopenharmony_ci| ------ | -------------- |
653e41f4b71Sopenharmony_ci| number | Line number obtained.|
654e41f4b71Sopenharmony_ci
655e41f4b71Sopenharmony_ci**Example**
656e41f4b71Sopenharmony_ci
657e41f4b71Sopenharmony_ci```ts
658e41f4b71Sopenharmony_ciimport { util } from '@kit.ArkTS';
659e41f4b71Sopenharmony_ci
660e41f4b71Sopenharmony_cilet strXml = '<?xml version="1.0" encoding="utf-8"?><note>Work</note>';
661e41f4b71Sopenharmony_cilet textEncoder = new util.TextEncoder();
662e41f4b71Sopenharmony_cilet arrbuffer = textEncoder.encodeInto(strXml);
663e41f4b71Sopenharmony_cilet that = new xml.XmlPullParser(arrbuffer.buffer as object as ArrayBuffer);
664e41f4b71Sopenharmony_cilet str = "";
665e41f4b71Sopenharmony_cifunction func(key: xml.EventType, value: xml.ParseInfo) {
666e41f4b71Sopenharmony_ci  str += 'key:' + key + ' value:' + value.getLineNumber() + ' ';
667e41f4b71Sopenharmony_ci  return true; // Determines whether to continually parse, which is used to continue or terminate parsing.
668e41f4b71Sopenharmony_ci}
669e41f4b71Sopenharmony_cilet options: xml.ParseOptions = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func}
670e41f4b71Sopenharmony_cithat.parse(options);
671e41f4b71Sopenharmony_ciconsole.log(str);
672e41f4b71Sopenharmony_ci// key:0 value:1 key:2 value:1 key:4 value:1 key:3 value:1 key:1 value:1
673e41f4b71Sopenharmony_ci```
674e41f4b71Sopenharmony_ci
675e41f4b71Sopenharmony_ci### getName
676e41f4b71Sopenharmony_ci
677e41f4b71Sopenharmony_cigetName(): string
678e41f4b71Sopenharmony_ci
679e41f4b71Sopenharmony_ciObtains the name of this element.
680e41f4b71Sopenharmony_ci
681e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
682e41f4b71Sopenharmony_ci
683e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
684e41f4b71Sopenharmony_ci
685e41f4b71Sopenharmony_ci**Return value**
686e41f4b71Sopenharmony_ci
687e41f4b71Sopenharmony_ci| Type  | Description              |
688e41f4b71Sopenharmony_ci| ------ | ------------------ |
689e41f4b71Sopenharmony_ci| string | Element name obtained.|
690e41f4b71Sopenharmony_ci
691e41f4b71Sopenharmony_ci**Example**
692e41f4b71Sopenharmony_ci
693e41f4b71Sopenharmony_ci```ts
694e41f4b71Sopenharmony_ciimport { util } from '@kit.ArkTS';
695e41f4b71Sopenharmony_ci
696e41f4b71Sopenharmony_cilet strXml = '<?xml version="1.0" encoding="utf-8"?><note>Happy</note>';
697e41f4b71Sopenharmony_cilet textEncoder = new util.TextEncoder();
698e41f4b71Sopenharmony_cilet arrbuffer = textEncoder.encodeInto(strXml);
699e41f4b71Sopenharmony_cilet that = new xml.XmlPullParser(arrbuffer.buffer as object as ArrayBuffer);
700e41f4b71Sopenharmony_cilet str = "";
701e41f4b71Sopenharmony_cifunction func(key: xml.EventType, value: xml.ParseInfo) {
702e41f4b71Sopenharmony_ci  str += 'key:' + key + ' value:' + value.getName() + ' ';
703e41f4b71Sopenharmony_ci  return true; // Determines whether to continually parse, which is used to continue or terminate parsing.
704e41f4b71Sopenharmony_ci}
705e41f4b71Sopenharmony_cilet options: xml.ParseOptions = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func}
706e41f4b71Sopenharmony_cithat.parse(options);
707e41f4b71Sopenharmony_ciconsole.log(str);
708e41f4b71Sopenharmony_ci// key:0 value: key:2 value:note key:4 value: key:3 value:note key:1 value:
709e41f4b71Sopenharmony_ci```
710e41f4b71Sopenharmony_ci### getNamespace
711e41f4b71Sopenharmony_ci
712e41f4b71Sopenharmony_cigetNamespace(): string
713e41f4b71Sopenharmony_ci
714e41f4b71Sopenharmony_ciObtains the namespace of this element.
715e41f4b71Sopenharmony_ci
716e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
717e41f4b71Sopenharmony_ci
718e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
719e41f4b71Sopenharmony_ci
720e41f4b71Sopenharmony_ci**Return value**
721e41f4b71Sopenharmony_ci
722e41f4b71Sopenharmony_ci| Type  | Description                    |
723e41f4b71Sopenharmony_ci| ------ | ------------------------ |
724e41f4b71Sopenharmony_ci| string | Namespace obtained.|
725e41f4b71Sopenharmony_ci
726e41f4b71Sopenharmony_ci**Example**
727e41f4b71Sopenharmony_ci
728e41f4b71Sopenharmony_ci```ts
729e41f4b71Sopenharmony_ciimport { util } from '@kit.ArkTS';
730e41f4b71Sopenharmony_ci
731e41f4b71Sopenharmony_cilet strXml =
732e41f4b71Sopenharmony_ci  '<?xml version="1.0" encoding="utf-8"?>' +
733e41f4b71Sopenharmony_ci  '<note xmlns:h="http://www.w3.org">' +
734e41f4b71Sopenharmony_ci    '<h:title>Happy</h:title>' +
735e41f4b71Sopenharmony_ci  '</note>';
736e41f4b71Sopenharmony_cilet textEncoder = new util.TextEncoder();
737e41f4b71Sopenharmony_cilet arrbuffer = textEncoder.encodeInto(strXml);
738e41f4b71Sopenharmony_cilet that = new xml.XmlPullParser(arrbuffer.buffer as object as ArrayBuffer);
739e41f4b71Sopenharmony_cilet str = "";
740e41f4b71Sopenharmony_cifunction func(key: xml.EventType, value: xml.ParseInfo) {
741e41f4b71Sopenharmony_ci  str += 'key:' + key + ' value:' + value.getNamespace() + ' ';
742e41f4b71Sopenharmony_ci  return true; // Determines whether to continually parse, which is used to continue or terminate parsing.
743e41f4b71Sopenharmony_ci}
744e41f4b71Sopenharmony_cilet options: xml.ParseOptions = {supportDoctype:true, ignoreNameSpace:false, tokenValueCallbackFunction:func}
745e41f4b71Sopenharmony_cithat.parse(options);
746e41f4b71Sopenharmony_ciconsole.log(str);
747e41f4b71Sopenharmony_ci// key:0 value: key:2 value: key:2 value:http://www.w3.org key:4 value: key:3 value:http://www.w3.org key:3 value: key:1 value:
748e41f4b71Sopenharmony_ci```
749e41f4b71Sopenharmony_ci### getPrefix
750e41f4b71Sopenharmony_ci
751e41f4b71Sopenharmony_cigetPrefix(): string
752e41f4b71Sopenharmony_ci
753e41f4b71Sopenharmony_ciObtains the prefix of this element.
754e41f4b71Sopenharmony_ci
755e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
756e41f4b71Sopenharmony_ci
757e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
758e41f4b71Sopenharmony_ci
759e41f4b71Sopenharmony_ci**Return value**
760e41f4b71Sopenharmony_ci
761e41f4b71Sopenharmony_ci| Type  | Description              |
762e41f4b71Sopenharmony_ci| ------ | ------------------ |
763e41f4b71Sopenharmony_ci| string | Element prefix obtained.|
764e41f4b71Sopenharmony_ci
765e41f4b71Sopenharmony_ci**Example**
766e41f4b71Sopenharmony_ci
767e41f4b71Sopenharmony_ci```ts
768e41f4b71Sopenharmony_ciimport { util } from '@kit.ArkTS';
769e41f4b71Sopenharmony_ci
770e41f4b71Sopenharmony_cilet strXml =
771e41f4b71Sopenharmony_ci  '<?xml version="1.0" encoding="utf-8"?>' +
772e41f4b71Sopenharmony_ci  '<note xmlns:h="http://www.w3.org/TR/html4">' +
773e41f4b71Sopenharmony_ci    '<h:title>Happy</h:title>' +
774e41f4b71Sopenharmony_ci  '</note>';
775e41f4b71Sopenharmony_cilet textEncoder = new util.TextEncoder();
776e41f4b71Sopenharmony_cilet arrbuffer = textEncoder.encodeInto(strXml);
777e41f4b71Sopenharmony_cilet that = new xml.XmlPullParser(arrbuffer.buffer as object as ArrayBuffer);
778e41f4b71Sopenharmony_cilet str = "";
779e41f4b71Sopenharmony_cifunction func(key: xml.EventType, value: xml.ParseInfo) {
780e41f4b71Sopenharmony_ci  str += 'key:' + key + ' value:' + value.getPrefix() + ' ';
781e41f4b71Sopenharmony_ci  return true; // Determines whether to continually parse, which is used to continue or terminate parsing.
782e41f4b71Sopenharmony_ci}
783e41f4b71Sopenharmony_cilet options: xml.ParseOptions = {supportDoctype:true, ignoreNameSpace:false, tokenValueCallbackFunction:func}
784e41f4b71Sopenharmony_cithat.parse(options);
785e41f4b71Sopenharmony_ciconsole.log(str);
786e41f4b71Sopenharmony_ci// key:0 value: key:2 value: key:2 value:h key:4 value: key:3 value:h key:3 value: key:1 value:
787e41f4b71Sopenharmony_ci```
788e41f4b71Sopenharmony_ci
789e41f4b71Sopenharmony_ci### getText
790e41f4b71Sopenharmony_ci
791e41f4b71Sopenharmony_cigetText(): string
792e41f4b71Sopenharmony_ci
793e41f4b71Sopenharmony_ciObtains the text of the current event.
794e41f4b71Sopenharmony_ci
795e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
796e41f4b71Sopenharmony_ci
797e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
798e41f4b71Sopenharmony_ci
799e41f4b71Sopenharmony_ci**Return value**
800e41f4b71Sopenharmony_ci
801e41f4b71Sopenharmony_ci| Type  | Description                    |
802e41f4b71Sopenharmony_ci| ------ | ------------------------ |
803e41f4b71Sopenharmony_ci| string | Text content obtained.|
804e41f4b71Sopenharmony_ci
805e41f4b71Sopenharmony_ci**Example**
806e41f4b71Sopenharmony_ci
807e41f4b71Sopenharmony_ci```ts
808e41f4b71Sopenharmony_ciimport { util } from '@kit.ArkTS';
809e41f4b71Sopenharmony_ci
810e41f4b71Sopenharmony_cilet strXml = '<?xml version="1.0" encoding="utf-8"?><note>Happy</note>';
811e41f4b71Sopenharmony_cilet textEncoder = new util.TextEncoder();
812e41f4b71Sopenharmony_cilet arrbuffer = textEncoder.encodeInto(strXml);
813e41f4b71Sopenharmony_cilet that = new xml.XmlPullParser(arrbuffer.buffer as object as ArrayBuffer);
814e41f4b71Sopenharmony_cilet str = "";
815e41f4b71Sopenharmony_cifunction func(key: xml.EventType, value: xml.ParseInfo) {
816e41f4b71Sopenharmony_ci  str += 'key:' + key + ' value:' + value.getText() + ' ';
817e41f4b71Sopenharmony_ci  return true; // Determines whether to continually parse, which is used to continue or terminate parsing.
818e41f4b71Sopenharmony_ci}
819e41f4b71Sopenharmony_cilet options: xml.ParseOptions = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func}
820e41f4b71Sopenharmony_cithat.parse(options);
821e41f4b71Sopenharmony_ciconsole.log(str);
822e41f4b71Sopenharmony_ci// key:0 value: key:2 value: key:4 value:Happy key:3 value: key:1 value:
823e41f4b71Sopenharmony_ci```
824e41f4b71Sopenharmony_ci### isEmptyElementTag
825e41f4b71Sopenharmony_ci
826e41f4b71Sopenharmony_ciisEmptyElementTag(): boolean
827e41f4b71Sopenharmony_ci
828e41f4b71Sopenharmony_ciChecks whether the current element is empty.
829e41f4b71Sopenharmony_ci
830e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
831e41f4b71Sopenharmony_ci
832e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
833e41f4b71Sopenharmony_ci
834e41f4b71Sopenharmony_ci**Return value**
835e41f4b71Sopenharmony_ci
836e41f4b71Sopenharmony_ci| Type   | Description                        |
837e41f4b71Sopenharmony_ci| ------- | ---------------------------- |
838e41f4b71Sopenharmony_ci| boolean | Returns **true** if the element is empty; returns **false** otherwise.|
839e41f4b71Sopenharmony_ci
840e41f4b71Sopenharmony_ci**Example**
841e41f4b71Sopenharmony_ci
842e41f4b71Sopenharmony_ci```ts
843e41f4b71Sopenharmony_ciimport { util } from '@kit.ArkTS';
844e41f4b71Sopenharmony_ci
845e41f4b71Sopenharmony_cilet strXml =
846e41f4b71Sopenharmony_ci  '<?xml version="1.0" encoding="utf-8"?>' +
847e41f4b71Sopenharmony_ci  '<note importance="high" logged="true">' +
848e41f4b71Sopenharmony_ci    '<title/>' +
849e41f4b71Sopenharmony_ci  '</note>';
850e41f4b71Sopenharmony_cilet textEncoder = new util.TextEncoder();
851e41f4b71Sopenharmony_cilet arrbuffer = textEncoder.encodeInto(strXml);
852e41f4b71Sopenharmony_cilet that = new xml.XmlPullParser(arrbuffer.buffer as object as ArrayBuffer);
853e41f4b71Sopenharmony_cilet str = "";
854e41f4b71Sopenharmony_cifunction func(key: xml.EventType, value: xml.ParseInfo) {
855e41f4b71Sopenharmony_ci  str += 'key:' + key + ' value:' + value.isEmptyElementTag() + ' ';
856e41f4b71Sopenharmony_ci  return true; // Determines whether to continually parse, which is used to continue or terminate parsing.
857e41f4b71Sopenharmony_ci}
858e41f4b71Sopenharmony_cilet options: xml.ParseOptions = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func}
859e41f4b71Sopenharmony_cithat.parse(options);
860e41f4b71Sopenharmony_ciconsole.log(str);
861e41f4b71Sopenharmony_ci// key:0 value:false key:2 value:false key:2 value:true key:3 value:false key:3 value:false key:1 value:false
862e41f4b71Sopenharmony_ci```
863e41f4b71Sopenharmony_ci### isWhitespace
864e41f4b71Sopenharmony_ci
865e41f4b71Sopenharmony_ciisWhitespace(): boolean
866e41f4b71Sopenharmony_ci
867e41f4b71Sopenharmony_ciChecks whether the current event contains only whitespace characters.
868e41f4b71Sopenharmony_ci
869e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
870e41f4b71Sopenharmony_ci
871e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
872e41f4b71Sopenharmony_ci
873e41f4b71Sopenharmony_ci**Return value**
874e41f4b71Sopenharmony_ci
875e41f4b71Sopenharmony_ci| Type   | Description                                  |
876e41f4b71Sopenharmony_ci| ------- | -------------------------------------- |
877e41f4b71Sopenharmony_ci| boolean | Returns **true** if the text event contains only whitespace characters; returns **false** otherwise.|
878e41f4b71Sopenharmony_ci
879e41f4b71Sopenharmony_ci**Example**
880e41f4b71Sopenharmony_ci
881e41f4b71Sopenharmony_ci```ts
882e41f4b71Sopenharmony_ciimport { util } from '@kit.ArkTS';
883e41f4b71Sopenharmony_ci
884e41f4b71Sopenharmony_cilet strXml =
885e41f4b71Sopenharmony_ci  '<?xml version="1.0" encoding="utf-8"?>' +
886e41f4b71Sopenharmony_ci  '<note importance="high" logged="true">' +
887e41f4b71Sopenharmony_ci    '<title> </title>' +
888e41f4b71Sopenharmony_ci  '</note>';
889e41f4b71Sopenharmony_cilet textEncoder = new util.TextEncoder();
890e41f4b71Sopenharmony_cilet arrbuffer = textEncoder.encodeInto(strXml);
891e41f4b71Sopenharmony_cilet that = new xml.XmlPullParser(arrbuffer.buffer as object as ArrayBuffer);
892e41f4b71Sopenharmony_cilet str = "";
893e41f4b71Sopenharmony_cifunction func(key: xml.EventType, value: xml.ParseInfo) {
894e41f4b71Sopenharmony_ci  str += 'key:' + key + ' value:' + value.isWhitespace() + ' ';
895e41f4b71Sopenharmony_ci  return true; // Determines whether to continually parse, which is used to continue or terminate parsing.
896e41f4b71Sopenharmony_ci}
897e41f4b71Sopenharmony_cilet options: xml.ParseOptions = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func}
898e41f4b71Sopenharmony_cithat.parse(options);
899e41f4b71Sopenharmony_ciconsole.log(str);
900e41f4b71Sopenharmony_ci// key:0 value:true key:2 value:false key:2 value:true key:10 value:true key:3 value:true key:3 value:true key:1 value:true
901e41f4b71Sopenharmony_ci```
902e41f4b71Sopenharmony_ci### getAttributeCount
903e41f4b71Sopenharmony_ci
904e41f4b71Sopenharmony_cigetAttributeCount(): number
905e41f4b71Sopenharmony_ci
906e41f4b71Sopenharmony_ciObtains the number of attributes for the current start tag.
907e41f4b71Sopenharmony_ci
908e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
909e41f4b71Sopenharmony_ci
910e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
911e41f4b71Sopenharmony_ci
912e41f4b71Sopenharmony_ci**Return value**
913e41f4b71Sopenharmony_ci| Type  | Description                  |
914e41f4b71Sopenharmony_ci| ------ | ---------------------- |
915e41f4b71Sopenharmony_ci| number | Number of attributes obtained.|
916e41f4b71Sopenharmony_ci
917e41f4b71Sopenharmony_ci**Example**
918e41f4b71Sopenharmony_ci
919e41f4b71Sopenharmony_ci```ts
920e41f4b71Sopenharmony_ciimport { util } from '@kit.ArkTS';
921e41f4b71Sopenharmony_ci
922e41f4b71Sopenharmony_cilet strXml = '<?xml version="1.0" encoding="utf-8"?><note importance="high" logged="true"/>';
923e41f4b71Sopenharmony_cilet textEncoder = new util.TextEncoder();
924e41f4b71Sopenharmony_cilet arrbuffer = textEncoder.encodeInto(strXml);
925e41f4b71Sopenharmony_cilet that = new xml.XmlPullParser(arrbuffer.buffer as object as ArrayBuffer);
926e41f4b71Sopenharmony_cilet str = "";
927e41f4b71Sopenharmony_cifunction func(key: xml.EventType, value: xml.ParseInfo) {
928e41f4b71Sopenharmony_ci  str += 'key:' + key + ' value:' + value.getAttributeCount() + ' ';
929e41f4b71Sopenharmony_ci  return true; // Determines whether to continually parse, which is used to continue or terminate parsing.
930e41f4b71Sopenharmony_ci}
931e41f4b71Sopenharmony_cilet options: xml.ParseOptions = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func}
932e41f4b71Sopenharmony_cithat.parse(options);
933e41f4b71Sopenharmony_ciconsole.log(str);
934e41f4b71Sopenharmony_ci// key:0 value:0 key:2 value:2 key:3 value:2 key:1 value:0
935e41f4b71Sopenharmony_ci```
936e41f4b71Sopenharmony_ci
937e41f4b71Sopenharmony_ci## EventType
938e41f4b71Sopenharmony_ci
939e41f4b71Sopenharmony_ciEnumerates the event types.
940e41f4b71Sopenharmony_ci
941e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 11.
942e41f4b71Sopenharmony_ci
943e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Utils.Lang
944e41f4b71Sopenharmony_ci
945e41f4b71Sopenharmony_ci| Name            | Value  | Description                 |
946e41f4b71Sopenharmony_ci| ---------------- | ---- | --------------------- |
947e41f4b71Sopenharmony_ci| START_DOCUMENT   | 0    | Start document event.       |
948e41f4b71Sopenharmony_ci| END_DOCUMENT     | 1    | End document event.       |
949e41f4b71Sopenharmony_ci| START_TAG        | 2    | Start tag event.       |
950e41f4b71Sopenharmony_ci| END_TAG          | 3    | End tag event.       |
951e41f4b71Sopenharmony_ci| TEXT             | 4    | Text event.           |
952e41f4b71Sopenharmony_ci| CDSECT           | 5    | CDATA section event.          |
953e41f4b71Sopenharmony_ci| COMMENT          | 6    | XML comment event.        |
954e41f4b71Sopenharmony_ci| DOCDECL          | 7    | XML document type declaration event.|
955e41f4b71Sopenharmony_ci| INSTRUCTION      | 8    | XML processing instruction event.|
956e41f4b71Sopenharmony_ci| ENTITY_REFERENCE | 9    | Entity reference event.       |
957e41f4b71Sopenharmony_ci| WHITESPACE       | 10   | Whitespace character event.           |
958