W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
XML可以作為數(shù)據(jù)交換格式,被各種系統(tǒng)和應(yīng)用程序所支持。例如Web服務(wù),可以將結(jié)構(gòu)化數(shù)據(jù)以XML格式進(jìn)行傳遞。
XML還可以作為消息傳遞格式,在分布式系統(tǒng)中用于不同節(jié)點之間的通信與交互。
XML標(biāo)簽必須成對出現(xiàn),生成開始標(biāo)簽就要生成結(jié)束標(biāo)簽。
XML標(biāo)簽對大小寫敏感,開始標(biāo)簽與結(jié)束標(biāo)簽大小寫要一致。
XML模塊提供XmlSerializer類來生成XML文件,輸入為固定長度的Arraybuffer或DataView對象,該對象用于存放輸出的XML數(shù)據(jù)。
通過調(diào)用不同的方法來寫入不同的內(nèi)容,如startElement(name: string)寫入元素開始標(biāo)記,setText(text: string)寫入標(biāo)簽值。
XML模塊的API接口可以參考@ohos.xml的詳細(xì)描述,按需求調(diào)用對應(yīng)函數(shù)可以生成一份完整的XML文件。
引入模塊。
- import xml from '@ohos.xml';
- import util from '@ohos.util';
創(chuàng)建緩沖區(qū),構(gòu)造XmlSerializer對象(可以基于Arraybuffer構(gòu)造XmlSerializer對象, 也可以基于DataView構(gòu)造XmlSerializer對象)。
- // 1.基于Arraybuffer構(gòu)造XmlSerializer對象
- let arrayBuffer = new ArrayBuffer(2048); // 創(chuàng)建一個2048字節(jié)的緩沖區(qū)
- let thatSer = new xml.XmlSerializer(arrayBuffer); // 基于Arraybuffer構(gòu)造XmlSerializer對象
- // 2.基于DataView構(gòu)造XmlSerializer對象
- let arrayBuffer = new ArrayBuffer(2048); // 創(chuàng)建一個2048字節(jié)的緩沖區(qū)
- let dataView = new DataView(arrayBuffer); // 使用DataView對象操作ArrayBuffer對象
- let thatSer = new xml.XmlSerializer(dataView); // 基于DataView構(gòu)造XmlSerializer對象
調(diào)用XML元素生成函數(shù)。
- thatSer.setDeclaration(); // 寫入xml的聲明
- thatSer.startElement('bookstore'); // 寫入元素開始標(biāo)記
- thatSer.startElement('book'); // 嵌套元素開始標(biāo)記
- thatSer.setAttributes('category', 'COOKING'); // 寫入屬性及屬性值
- thatSer.startElement('title');
- thatSer.setAttributes('lang', 'en');
- thatSer.setText('Everyday'); // 寫入標(biāo)簽值
- thatSer.endElement(); // 寫入結(jié)束標(biāo)記
- thatSer.startElement('author');
- thatSer.setText('Giada');
- thatSer.endElement();
- thatSer.startElement('year');
- thatSer.setText('2005');
- thatSer.endElement();
- thatSer.endElement();
- thatSer.endElement();
使用Uint8Array操作Arraybuffer,調(diào)用TextDecoder對Uint8Array解碼后輸出。
- let view = new Uint8Array(arrayBuffer); // 使用Uint8Array讀取arrayBuffer的數(shù)據(jù)
- let textDecoder = util.TextDecoder.create(); // 調(diào)用util模塊的TextDecoder類
- let res = textDecoder.decodeWithStream(view); // 對view解碼
- console.info(res);
輸出結(jié)果如下:
- <?xml version=\"1.0\" encoding=\"utf-8\"?><bookstore>\r\n <book category=\"COOKING\">\r\n <title lang=\"en\">Everyday</title>
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: