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 & 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) => 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) => 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)) => 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