1# ArkTS子系统变更说明
2
3## cl.arkts.1 convertXml模块convertToJSObject接口对于连续的CDATA标签解析行为变更
4
5**访问级别**
6
7公开接口
8
9**变更原因**
10
11特定场景下,对于连续的CDATA标签数据进行解析时,会将连续两个CDATA数据错误地解析到同一个element中。
12
13**变更影响**
14
15修复BUG,将连续的CDATA标签的数据解析到不同的element中。
16
17**起始 API Level**
18
199
20
21**变更发生版本**
22
23OpenHarmony SDK 5.0.0.19
24
25**变更的接口/组件**
26
27convertToJSObject(xml: string, options?: ConvertOptions): Object;
28
29**适配指导**
30
31```ts
32let xml = '<?xml version="1.0" encoding="utf-8"?><![CDATA[ \t data\n]]><![CDATA[< > " and & \t ]]>';
33let conv = new convertxml.ConvertXML();
34let options = {trim : false, declarationKey:"_declaration",
35               instructionKey : "_instruction", attributesKey : "_attributes",
36               textKey : "_text", cdataKey:"_cdata", doctypeKey : "_doctype",
37               commentKey : "_comment", parentKey : "_parent", typeKey : "_type",
38               nameKey : "_name", elementsKey : "_elements"}
39let result: ESObject = conv.convertToJSObject(xml, options);
40
41// 变更前:
42//let cdata = result._elements[0]._cdata;   // cdata 为 ' \\t data\\n< > \" and & \\t '
43
44// 变更后
45let cdata1 = result._elements[0]._cdata;    // cdata1 为 '\\t data\\n'
46let cdata2 = result._elements[1]._cdata;    // cdata2 为 '< > \" and & \\t '
47```
48
49该问题修复后的主要表现为:将连续的CDATA标签的数据解析到不同的element中。
50
51同时满足以下两个特定场景,开发者需要适配修改获取的_cdata数据:
521. 使用convertToJSObject进行解析xml数据。
532. xml数据中存在连续两个CDATA标签,且两个CDATA标签间没有空格、换行等字符的情况。
54