中国优质的IT技术网站
专业IT技术创作平台
IT职业在线教育平台
如何解析XML事件类型和元素深度?
微信扫码分享
import xml from '@ohos.xml'; import util from '@ohos.util'; // 需要使用util模块函数对文件编码 let strXml: string = '<?xml version="1.0" encoding="utf-8"?>' + '<note importance="high" logged="true">' + '<title>Play</title>' + '<lens>Work</lens>' + '</note>'; let textEncoder: util.TextEncoder = new util.TextEncoder(); let arrBuffer: Uint8Array = textEncoder.encodeInto(strXml); // 对数据编码,防止包含中文字符乱码 let that: xml.XmlPullParser = new xml.XmlPullParser(arrBuffer.buffer as object as ArrayBuffer, 'UTF-8'); let str: string = ''; function func(name: xml.EventType, value: xml.ParseInfo): boolean { str = name + ' ' + value.getDepth(); // getDepth 获取元素的当前深度 console.info(str) return true; //true:继续解析 false:停止解析 } @Entry @Component struct Index { build() { Column() { Button("解析xml的属性和属性值").onClick(() => { let options: xml.ParseOptions = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func}; that.parse(options); }) } .width('100%') .height('100%') .justifyContent(FlexAlign.Center) } }