
【中秋国庆不断更】XML在HarmonyOS中的生成,解析与转换(下) 原创
一、XML解析
对于以XML作为载体传递的数据,实际使用中需要对相关的节点进行解析,一般包括解析XML标签和标签值、解析XML属性和属性值、解析XML事件类型和元素深度三类场景。
XML模块提供XmlPullParser类对XML文件解析,输入为含有XML文本的ArrayBuffer或DataView,输出为解析得到的信息。
表1 XML解析选项
名称 | 类型 | 必填 | 说明 |
supportDoctype | boolean | 否 | 是否忽略文档类型。默认为false,表示对文档类型进行解析。 |
ignoreNameSpace | boolean | 否 | 是否忽略命名空间。默认为false,表示对命名空间进行解析。 |
tagValueCallbackFunction | (name: string, value: string) => boolean | 否 | 获取tagValue回调函数,打印标签及标签值。默认为null,表示不进行XML标签和标签值的解析。 |
attributeValueCallbackFunction | (name: string, value: string) => boolean | 否 | 获取attributeValue回调函数, 打印属性及属性值。默认为null,表示不进行XML属性和属性值的解析。 |
tokenValueCallbackFunction | (eventType: EventType, value: ParseInfo) => boolean | 否 | 获取tokenValue回调函数,打印标签事件类型及parseInfo对应属性。默认为null,表示不进行XML事件类型解析。 |
注意事项
● XML解析及转换需要确保传入的XML数据符合标准格式。
● XML解析目前不支持按指定节点解析对应的节点值。
解析XML标签和标签值
1. 引入模块。
2.XML文件编码后调用XmlPullParser。
可以基于ArrayBuffer构造XmlPullParser对象, 也可以基于DataView构造XmlPullParser对象。
3. 自定义回调函数,本例直接打印出标签及标签值。
4. 设置解析选项,调用parse函数。
输出结果如下所示:
解析XML属性和属性值
1.引入模块。
2.对XML文件编码后调用XmlPullParser。
3.自定义回调函数,本例直接打印出属性及属性值。
4.设置解析选项,调用parse函数。
输出结果如下所示:
解析XML事件类型和元素深度
1. 引入模块。
2. 对XML文件编码后调用XmlPullParser。
3. 自定义回调函数,本例直接打印元素事件类型及元素深度。
4. 设置解析选项,调用parse函数。
输出结果如下所示:
场景示例
此处以调用所有解析选项为例,提供解析XML标签、属性和事件类型的开发示例。
输出结果如下所示:
二、 XML转换
将XML文本转换为JavaScript对象可以更轻松地处理和操作数据,并且更适合在JavaScript应用程序中使用。
语言基础类库提供ConvertXML类将XML文本转换为JavaScript对象,输入为待转换的XML字符串及转换选项,输出为转换后的JavaScript对象。具体转换选项可见@ohos.convertxml。
注意事项
XML解析及转换需要确保传入的XML数据符合标准格式。
开发步骤
此处以XML转为JavaScript对象后获取其标签值为例,说明转换效果。
1. 引入模块。
2. 输入待转换的XML,设置转换选项。
3. 调用转换函数,打印结果。
输出结果如下所示:
