1、概 述
XML(可扩展标记语言)是一种用于描述数据的标记语言,旨在提供一种通用的方式来传输和存储数据,特别是Web应用程序中经常使用的数据。XML并不预定义标记。因此,XML更加灵活,并且可以适用于广泛的应用领域。
XML文档由元素(element)、属性(attribute)和内容(content)组成。
-
-
内容则是元素包含的数据或子元素。
-
属性提供了有关元素的其他信息。
-
元素指的是标记对,包含文本、属性或其他元素。
-
XML还可以通过使用XML Schema或DTD(文档类型定义)来定义文档结构。这些机制允许开发人员创建自定义规则以验证XML文档是否符合其预期的格式。
XML还支持命名空间、实体引用、注释、处理指令等特性,使其能够灵活地适应各种数据需求。
语言基础类库提供了XML相关的基础能力,包括:XML的生成、XML的解析和XML的转换。
2、生成XML
一个生成XML的示例如下(关注 9 ~ 41行,genXml方法):
import { xml, util } from '@kit.ArkTS';@Entry@Component@Previewstruct Index {@State result: string = '';genXml() {// 方式1:基于Arraybuffer构造XmlSerializer对象let arrayBuffer: ArrayBuffer = new ArrayBuffer(2048); // 创建一个2048字节的缓冲区let thatSer: xml.XmlSerializer = new xml.XmlSerializer(arrayBuffer); // 基于Arraybuffer构造XmlSerializer对象// 方式2:基于DataView构造XmlSerializer对象// let arrayBuffer: ArrayBuffer = new ArrayBuffer(2048);// let dataView: DataView = new DataView(arrayBuffer);// let thatSer: xml.XmlSerializer = new xml.XmlSerializer(dataView);thatSer.setDeclaration(); // 写入xml的声明thatSer.startElement('bookstore'); // 写入元素开始标记thatSer.startElement('book'); // 嵌套元素开始标记thatSer.setAttributes('category', 'COOKING'); // 写入属性及属性值thatSer.startElement('title');thatSer.setAttributes('lang', 'en');thatSer.setText('Everyday'); // 写入标签值thatSer.endElement(); // 写入结束标记thatSer.startElement('author');thatSer.setText('Giana');thatSer.endElement();thatSer.startElement('year');thatSer.setText('2005');thatSer.endElement();thatSer.endElement();thatSer.endElement();let view: Uint8Array = new Uint8Array(arrayBuffer); // 使用Uint8Array读取arrayBuffer的数据let textDecoder: util.TextDecoder = util.TextDecoder.create(); // 调用util模块的TextDecoder类let res: string = textDecoder.decodeToString(view); // 对view解码// res输出结果this.result = res;}build() {Column() {Row() {Button('生成XML').onClick(() => {this.genXml();}).width('100%')}.width('100%')Row() {Text(this.result).width('100%').padding(10).borderColor(Color.Gray).borderWidth(1)}.width('100%')}.height('100%')}}
效果如下:

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



