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