<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

OpenHarmony語言基礎類庫【@ohos.xml (xml解析與生成)】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-05-08 17:05 ? 次閱讀

將XML文本轉換為JavaScript對象、以及XML文件生成和解析的一系列接口。

說明:

本模塊首批接口從API version 8開始支持。后續版本的新增接口,采用上角標單獨標記接口的起始版本。

導入模塊

import xml from '@ohos.xml';

XmlSerializer

XmlSerializer接口用于生成XML文件。

constructor

constructor(buffer: ArrayBuffer | DataView, encoding?: string)

XmlSerializer的構造函數。

系統能力: SystemCapability.Utils.Lang

參數

參數名類型必填說明
bufferArrayBufferDataView
encodingstring編碼格式 , 默認'utf-8'(目前僅支持'utf-8')。

鴻蒙開發指導文檔:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md點擊或者復制轉到。

示例:

let arrayBuffer = new ArrayBuffer(2048);
let thatSer = new xml.XmlSerializer(arrayBuffer, "utf-8");
thatSer.setDeclaration();
let result = '< ?xml version="1.0" encoding="utf-8"? >';
let view = new Uint8Array(arrayBuffer);
let view1 = "";
for (let i = 0; i < result.length; ++i) {
    view1 = view1 + String.fromCodePoint(view[i]);
}
console.log(view1) // < ?xml version="1.0" encoding="utf-8"? >

setAttributes

setAttributes(name: string, value: string): void

設置Attributes方法。

系統能力: SystemCapability.Utils.Lang

參數:

參數名類型必填說明
namestring屬性的key值。
valuestring屬性的value值。

示例:

const MY_MAX = 2048;
let arrayBuffer = new ArrayBuffer(MY_MAX);
let thatSer = new xml.XmlSerializer(arrayBuffer);
thatSer.startElement("note");
thatSer.setAttributes("importance1", "high1");
thatSer.endElement();
let result = '< note importance1="high1"/ >';
let view = new Uint8Array(arrayBuffer);
let view1 = "";
for (let i = 0; i < result.length; ++i) {
    view1 = view1 + String.fromCodePoint(view[i]);
}
console.log(view1) // < note importance1="high1"/ >

addEmptyElement

addEmptyElement(name: string): void

寫入一個空元素。

系統能力: SystemCapability.Utils.Lang

參數:

參數名類型必填說明
namestring該空元素的元素名。

示例:

const MY_MAX = 2048;
let arrayBuffer = new ArrayBuffer(MY_MAX);
let thatSer = new xml.XmlSerializer(arrayBuffer);
thatSer.addEmptyElement("d");
let result = '< d/ >';
let view = new Uint8Array(arrayBuffer);
let view1 = "";
for (let i = 0; i < result.length; ++i) {
    view1 = view1 + String.fromCodePoint(view[i]);
}
console.log(view1) // < d/ >

setDeclaration

setDeclaration(): void

編寫帶有編碼的文件聲明。

系統能力: SystemCapability.Utils.Lang

示例:

const MY_MAX = 2048;
let arrayBuffer = new ArrayBuffer(MY_MAX);
let thatSer = new xml.XmlSerializer(arrayBuffer);
thatSer.setDeclaration();
thatSer.setNamespace("h", "http://www.w3.org/TR/html4/");
thatSer.startElement("note");
thatSer.endElement();
let result = '< ?xml version="1.0" encoding="utf-8"? >rn< h:note xmlns:h="http://www.w3.org/TR/html4/"/ >';
let view = new Uint8Array(arrayBuffer);
let view1 = "";
for (let i = 0; i < result.length; ++i) {
    view1 = view1 + String.fromCodePoint(view[i]);
}
console.log(view1)
// < ?xml version="1.0" encoding="utf-8"? >
// < h:note xmlns:h="http://www.w3.org/TR/html4/"/ >

startElement

startElement(name: string): void

根據給定名稱寫入元素開始標記。

系統能力: SystemCapability.Utils.Lang

參數:

參數名類型必填說明
namestring當前元素的元素名。

示例:

const MY_MAX = 2048;
let arrayBuffer = new ArrayBuffer(MY_MAX);
let thatSer = new xml.XmlSerializer(arrayBuffer);
thatSer.setDeclaration();
thatSer.setNamespace("h", "http://www.w3.org/TR/html4/");
thatSer.startElement("note");
thatSer.endElement();
let result = '< ?xml version="1.0" encoding="utf-8"? >rn< h:note xmlns:h="http://www.w3.org/TR/html4/"/ >';
let view = new Uint8Array(arrayBuffer);
let view1 = "";
for (let i = 0; i < result.length; ++i) {
    view1 = view1 + String.fromCodePoint(view[i]);
}
console.log(JSON.stringify(view1)) // < ?xml version="1.0" encoding="utf-8"? >rn< h:note xmlns:h="http://www.w3.org/TR/html4/"/ >

endElement

endElement(): void

寫入元素結束標記。

系統能力: SystemCapability.Utils.Lang

示例:

const MY_MAX = 2048;
let arrayBuffer = new ArrayBuffer(MY_MAX);
let thatSer = new xml.XmlSerializer(arrayBuffer);
thatSer.setDeclaration();
thatSer.setNamespace("h", "http://www.w3.org/TR/html4/");
thatSer.startElement("note");
thatSer.endElement();
let result = '< ?xml version="1.0" encoding="utf-8"? >rn< h:note xmlns:h="http://www.w3.org/TR/html4/"/ >';
let view = new Uint8Array(arrayBuffer);
let view1 = "";
for (let i = 0; i < result.length; ++i) {
    view1 = view1 + String.fromCodePoint(view[i]);
}
console.log(JSON.stringify(view1)) // < ?xml version="1.0" encoding="utf-8"? >rn< h:note xmlns:h="http://www.w3.org/TR/html4/"/ >

setNamespace

setNamespace(prefix: string, namespace: string): void

寫入當前元素標記的命名空間。

系統能力: SystemCapability.Utils.Lang

參數:

參數名類型必填說明
prefixstring當前元素及其子元素的前綴。
namespacestring當前元素及其子元素的命名空間。

示例:

const MY_MAX = 2048;
let arrayBuffer = new ArrayBuffer(MY_MAX);
let thatSer = new xml.XmlSerializer(arrayBuffer);
thatSer.setDeclaration();
thatSer.setNamespace("h", "http://www.w3.org/TR/html4/");
thatSer.startElement("note");
thatSer.endElement();
let result = '< ?xml version="1.0" encoding="utf-8"? >rn< h:note xmlns:h="http://www.w3.org/TR/html4/"/ >';
let view = new Uint8Array(arrayBuffer);
let view1 = "";
for (let i = 0; i < result.length; ++i) {
    view1 = view1 + String.fromCodePoint(view[i]);
}
console.log(JSON.stringify(view1)) // < ?xml version="1.0" encoding="utf-8"? >rn< h:note xmlns:h="http://www.w3.org/TR/html4/"/ >

setComment

setComment(text: string): void

寫入comment屬性。

系統能力: SystemCapability.Utils.Lang

參數:

參數名類型必填說明
textstring當前元素的注釋內容。

示例:

const MY_MAX = 2048;
let arrayBuffer = new ArrayBuffer(MY_MAX);
let thatSer = new xml.XmlSerializer(arrayBuffer);
thatSer.setComment("Hello, World!");
let result = '< !--Hello, World!-- >';
let view = new Uint8Array(arrayBuffer);
let view1 = "";
for (let i = 0; i < result.length; ++i) {
    view1 = view1 + String.fromCodePoint(view[i]);
}
console.log(view1) // < !--Hello, World!-- >

setCDATA

setCDATA(text: string): void

寫入CDATA屬性。

系統能力: SystemCapability.Utils.Lang

參數:

參數名類型必填說明
textstringCDATA屬性的內容。

示例:

const MY_MAX = 2048;
let arrayBuffer = new ArrayBuffer(MY_MAX);
let thatSer = new xml.XmlSerializer(arrayBuffer);
thatSer.setCDATA('root SYSTEM')
let result = '< ![CDATA[root SYSTEM]] >';
let view = new Uint8Array(arrayBuffer);
let view1 = "";
for (let i = 0; i < result.length; ++i) {
    view1 = view1 + String.fromCodePoint(view[i]);
}
console.log(view1) // < ![CDATA[root SYSTEM]] >

[](https://gitee.com/openharmony/docs/blob/OpenHarmony-3.2-Release/zh-cn/application-dev/reference/apis/js-apis-xml.md#settext)setText

setText(text: string): void

設置Text方法。

系統能力: SystemCapability.Utils.Lang

參數:

參數名類型必填說明
textstringtext屬性的內容。

示例:

const MY_MAX = 2048;
let arrayBuffer = new ArrayBuffer(MY_MAX);
let thatSer = new xml.XmlSerializer(arrayBuffer);
thatSer.startElement("note");
thatSer.setAttributes("importance", "high");
thatSer.setText("Happy1");
thatSer.endElement();
let result = '< note importance="high" >Happy1< /note >';
let view = new Uint8Array(arrayBuffer);
let view1 = "";
for (let i = 0; i < result.length; ++i) {
    view1 = view1 + String.fromCodePoint(view[i]);
}
console.log(view1) // < note importance="high" >Happy1< /note >

setDocType

setDocType(text: string): void

寫入DocType屬性。

系統能力: SystemCapability.Utils.Lang

參數:

參數名類型必填說明
textstringDocType屬性的內容。

示例:

const MY_MAX = 2048;
let arrayBuffer = new ArrayBuffer(MY_MAX);
let thatSer = new xml.XmlSerializer(arrayBuffer);
thatSer.setDocType('root SYSTEM "http://www.test.org/test.dtd"');
let result = '< !DOCTYPE root SYSTEM "http://www.test.org/test.dtd" >';
let view = new Uint8Array(arrayBuffer);
let view1 = "";
for (let i = 0; i < result.length; ++i) {
    view1 = view1 + String.fromCodePoint(view[i]);
}
console.log(view1) // < !DOCTYPE root SYSTEM "http://www.test.org/test.dtd" >

XmlPullParser

XmlPullParser接口用于解析現有的XML文件。

constructor

constructor(buffer: ArrayBuffer | DataView, encoding?: string)

構造并返回一個XmlPullParser對象。

系統能力: SystemCapability.Utils.Lang

參數:

參數名類型必填說明
bufferArrayBufferDataView
encodingstring編碼格式 , 默認'utf-8'(目前僅支持'utf-8')。

示例:

let strXml =
    '< ?xml version="1.0" encoding="utf-8"? >' +
    '< !DOCTYPE note [n< !ENTITY foo "baa" >] >' +
    '< note importance="high" logged="true" >' +
    '    < ![CDATA[rnfuncrion matchwo(a,6)rn{rnreturn 1;rn}rn]] >' +
    '    < !--Hello, World!-- >' +
    '    < company >John & Hans< /company >' +
    '    < title >Happy< /title >' +
    '    < title >Happy< /title >' +
    '    < lens >Work< /lens >' +
    '    < lens >Play< /lens >' +
    '    < ?go there? >' +
    '    < a >< b/ >< /a >' +
    '    < h:table xmlns:h="http://www.w3.org/TR/html4/" >' +
    '        < h:tr >' +
    '            < h:td >Apples< /h:td >' +
    '            < h:td >Bananas< /h:td >' +
    '        < /h:tr >' +
    '    < /h:table >' +
    '< /note >';
let textEncoder = new util.TextEncoder();
let arrbuffer = textEncoder.encodeInto(strXml);
let that = new xml.XmlPullParser(arrbuffer.buffer, 'UTF-8');
let str1 = '';
function func1(name, value){
    str1 += name+value;
    return true;
}
let options = {supportDoctype:true, ignoreNameSpace:true, tagValueCallbackFunction:func1}
that.parse(options);
console.log(str1)
//  note [< !ENTITY foo "baa" >]note    funcrion matchwo(a,6){return 1;}    Hello, World!    companyJohn amp;amp; Hanscompany    titleHappytitle    titleHappytitle    lensWorklens    lensPlaylens    go there    abba    h:table        h:tr            h:tdApplesh:td            h:tdBananash:td        h:tr    h:tablenote

parse

parse(option: ParseOptions): void

該接口用于解析xml。

系統能力: SystemCapability.Utils.Lang

參數:

參數名類型必填說明
option[ParseOptions]用戶控制以及獲取解析信息的選項。

示例:

let strXml =
            '< ?xml version="1.0" encoding="utf-8"? >' +
            '< note importance="high" logged="true" >' +
            '    < title >Happy< /title >' +
            '    < todo >Work< /todo >' +
            '    < todo >Play< /todo >' +
            '< /note >';
let textEncoder = new util.TextEncoder();
let arrbuffer = textEncoder.encodeInto(strXml);
let that = new xml.XmlPullParser(arrbuffer.buffer);
let arrTag = {};
let str = "";
let i = 0;
function func(key, value){
    arrTag[i] = 'key:'+key+' value:'+ value.getDepth();
    str += arrTag[i];
    i++;
    return true; // Determines whether to continually parse, which is used to continue or terminate parsing.
}
let options = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func}
that.parse(options);
console.log(str);
// 輸出:
// key:0 value:0key:2 value:1key:10 value:1key:2 value:2key:4 value:2key:3 value:2key:10 value:1key:2 value:2key:4 value:2key:3 value:2key:10 value:1key:2 value:2key:4 value:2key:3 value:2key:3 value:1key:1 value:0
// 解析:
// key代表了當前事件類型,value為當前解析的深度。你可以根據EVENTTYPE來知道具體的解析事件。例如本示例結果key: value代表含義為:
// 0(START_DOCUMENT):0(起始深度為0), 2(START_TAG):1(解析到開始標簽node, 對應深度為1), 10(WHITESPACE):1(解析到空白標簽空格, 對應深度為1), 2(START_TAG):2(解析到開始標簽title, 對應深度為2), ...

ParseOptions

xml解析選項。

系統能力: 以下各項對應的系統能力均為SystemCapability.Utils.Lang

名稱類型必填說明
supportDoctypeboolean是否忽略Doctype , 默認false。
ignoreNameSpaceboolean是否忽略NameSpace,默認false。
tagValueCallbackFunction(name: string, value: string) => boolean獲取tagValue回調函數 , 默認null。
attributeValueCallbackFunction(name: string, value: string) => boolean獲取attributeValue回調函數 , 默認null。
tokenValueCallbackFunction(eventType: [EventType], value: [ParseInfo]) => boolean獲取tokenValue回調函數, 默認null。

ParseInfo

當前xml解析信息。

getColumnNumber

getColumnNumber(): number

獲取當前列號,從1開始。

系統能力: SystemCapability.Utils.Lang

返回值:

類型說明
number返回當前列號。

示例:

let strXml =
            '< ?xml version="1.0" encoding="utf-8"? >' +
            '< note importance="high" logged="true" >' +
            '    < title >Happy< /title >' +
            '    < todo >Work< /todo >' +
            '    < todo >Play< /todo >' +
            '< /note >';
let textEncoder = new util.TextEncoder();
let arrbuffer = textEncoder.encodeInto(strXml);
let that = new xml.XmlPullParser(arrbuffer.buffer);
let arrTag = {};
let str = "";
let i = 0;
function func(key, value){
    arrTag[i] = 'key:'+key+' value:'+ value.getColumnNumber();
    str += arrTag[i];
    i++;
    return true; // Determines whether to continually parse, which is used to continue or terminate parsing.
}
let options = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func}
that.parse(options);
console.log(str);
// 輸出:
// key:0 value:1key:2 value:77key:10 value:81key:2 value:88key:4 value:93key:3 value:101key:10 value:105key:2 value:111key:4 value:115key:3 value:122key:10 value:126key:2 value:132key:4 value:136key:3 value:143key:3 value:150key:1 value:299

getDepth

getDepth(): number

獲取元素的當前深度。

系統能力: SystemCapability.Utils.Lang

返回值:

類型說明
number返回元素的當前深度。

示例:

let strXml =
            '< ?xml version="1.0" encoding="utf-8"? >' +
            '< note importance="high" logged="true" >' +
            '    < title >Happy< /title >' +
            '    < todo >Work< /todo >' +
            '    < todo >Play< /todo >' +
            '< /note >';
let textEncoder = new util.TextEncoder();
let arrbuffer = textEncoder.encodeInto(strXml);
let that = new xml.XmlPullParser(arrbuffer.buffer);
let arrTag = {};
let str = "";
let i = 0;
function func(key, value){
    arrTag[i] = 'key:'+key+' value:'+ value.getDepth();
    str += arrTag[i];
    i++;
    return true; // Determines whether to continually parse, which is used to continue or terminate parsing.
}
let options = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func}
that.parse(options);
console.log(str);
// 輸出:
// key:0 value:0key:2 value:1key:10 value:1key:2 value:2key:4 value:2key:3 value:2key:10 value:1key:2 value:2key:4 value:2key:3 value:2key:10 value:1key:2 value:2key:4 value:2key:3 value:2key:3 value:1key:1 value:0
// 解析:
// key代表了當前事件類型,value為當前解析的深度。你可以根據EVENTTYPE來知道具體的解析事件。例如本示例結果key: value代表含義為:
// 0(START_DOCUMENT):0(起始深度為0), 2(START_TAG):1(解析到開始標簽node, 對應深度為1), 10(WHITESPACE):1(解析到空白標簽空格, 對應深度為1), 2(START_TAG):2(解析到開始標簽title, 對應深度為2), ...

getLineNumber

getLineNumber(): number

獲取當前行號,從1開始。

系統能力: SystemCapability.Utils.Lang

返回值:

類型說明
number返回當前行號。

示例:

let strXml =
            '< ?xml version="1.0" encoding="utf-8"? >' +
            '< note importance="high" logged="true" >' +
            '    < title >Happy< /title >' +
            '    < todo >Work< /todo >' +
            '    < todo >Play< /todo >' +
            '< /note >';
let textEncoder = new util.TextEncoder();
let arrbuffer = textEncoder.encodeInto(strXml);
let that = new xml.XmlPullParser(arrbuffer.buffer);
let arrTag = {};
let str = "";
let i = 0;
function func(key, value){
    arrTag[i] = 'key:'+key+' value:'+ value.getLineNumber();
    str += arrTag[i];
    i++;
    return true; // Determines whether to continually parse, which is used to continue or terminate parsing.
}
let options = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func}
that.parse(options);
console.log(str);
// 輸出:
// key:0 value:1key:2 value:1key:10 value:1key:2 value:1key:4 value:1key:3 value:1key:10 value:1key:2 value:1key:4 value:1key:3 value:1key:10 value:1key:2 value:1key:4 value:1key:3 value:1key:3 value:1key:1 value:1

getName

getName(): string

獲取當前元素名稱。

系統能力: SystemCapability.Utils.Lang

返回值:

類型說明
string返回當前元素名稱。

示例:

let strXml =
            '< ?xml version="1.0" encoding="utf-8"? >' +
            '< note importance="high" logged="true" >' +
            '    < title >Happy< /title >' +
            '    < todo >Work< /todo >' +
            '    < todo >Play< /todo >' +
            '< /note >';
let textEncoder = new util.TextEncoder();
let arrbuffer = textEncoder.encodeInto(strXml);
let that = new xml.XmlPullParser(arrbuffer.buffer);
let arrTag = {};
let str = "";
let i = 0;
function func(key, value){
    arrTag[i] = 'key:'+key+' value:'+ value.getName();
    str += arrTag[i];
    i++;
    return true; // Determines whether to continually parse, which is used to continue or terminate parsing.
}
let options = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func}
that.parse(options);
console.log(str);
// 輸出:
// key:0 value:key:2 value:notekey:10 value:key:2 value:titlekey:4 value:key:3 value:titlekey:10 value:key:2 value:todokey:4 value:key:3 value:todokey:10 value:key:2 value:todokey:4 value:key:3 value:todokey:3 value:notekey:1 value:

getNamespace

getNamespace(): string

獲取當前元素的命名空間。

系統能力: SystemCapability.Utils.Lang

返回值:

類型說明
string返回當前元素的命名空間。

示例:

let strXml =
            '< ?xml version="1.0" encoding="utf-8"? >' +
            '< note importance="high" logged="true" >' +
            '    < title >Happy< /title >' +
            '    < todo >Work< /todo >' +
            '    < todo >Play< /todo >' +
            '< /note >';
let textEncoder = new util.TextEncoder();
let arrbuffer = textEncoder.encodeInto(strXml);
let that = new xml.XmlPullParser(arrbuffer.buffer);
let arrTag = {};
let str = "";
let i = 0;
function func(key, value){
    arrTag[i] = 'key:'+key+' value:'+ value.getNamespace();
    str += arrTag[i];
    i++;
    return true; // Determines whether to continually parse, which is used to continue or terminate parsing.
}
let options = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func}
that.parse(options);
console.log(str);
// 輸出:
// key:0 value:key:2 value:key:10 value:key:2 value:key:4 value:key:3 value:key:10 value:key:2 value:key:4 value:key:3 value:key:10 value:key:2 value:key:4 value:key:3 value:key:3 value:key:1 value:

getPrefix

getPrefix(): string

獲取當前元素前綴。

系統能力: SystemCapability.Utils.Lang

返回值:

類型說明
string返回當前元素前綴。

示例:

let strXml =
            '< ?xml version="1.0" encoding="utf-8"? >' +
            '< note importance="high" logged="true" >' +
            '    < title >Happy< /title >' +
            '    < todo >Work< /todo >' +
            '    < todo >Play< /todo >' +
            '< /note >';
let textEncoder = new util.TextEncoder();
let arrbuffer = textEncoder.encodeInto(strXml);
let that = new xml.XmlPullParser(arrbuffer.buffer);
let arrTag = {};
let str = "";
let i = 0;
function func(key, value){
    arrTag[i] = 'key:'+key+' value:'+ value.getPrefix();
    str += arrTag[i];
    i++;
    return true; // Determines whether to continually parse, which is used to continue or terminate parsing.
}
let options = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func}
that.parse(options);
console.log(str);
// 輸出:
// key:0 value:key:2 value:key:10 value:key:2 value:key:4 value:key:3 value:key:10 value:key:2 value:key:4 value:key:3 value:key:10 value:key:2 value:key:4 value:key:3 value:key:3 value:key:1 value:

getText

getText(): string

獲取當前事件的文本內容。

系統能力: SystemCapability.Utils.Lang

返回值:

類型說明
string返回當前事件的文本內容。

示例:

let strXml =
            '< ?xml version="1.0" encoding="utf-8"? >' +
            '< note importance="high" logged="true" >' +
            '    < title >Happy< /title >' +
            '    < todo >Work< /todo >' +
            '    < todo >Play< /todo >' +
            '< /note >';
let textEncoder = new util.TextEncoder();
let arrbuffer = textEncoder.encodeInto(strXml);
let that = new xml.XmlPullParser(arrbuffer.buffer);
let arrTag = {};
let str = "";
let i = 0;
function func(key, value){
    arrTag[i] = 'key:'+key+' value:'+ value.getText();
    str += arrTag[i];
    i++;
    return true; // Determines whether to continually parse, which is used to continue or terminate parsing.
}
let options = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func}
that.parse(options);
console.log(str);
// 輸出:
// key:0 value:key:2 value:key:10 value:    key:2 value:key:4 value:Happykey:3 value:key:10 value:    key:2 value:key:4 value:Workkey:3 value:key:10 value:    key:2 value:key:4 value:Playkey:3 value:key:3 value:key:1 value:

isEmptyElementTag

isEmptyElementTag(): boolean

判斷當前元素是否為空元素。

系統能力: SystemCapability.Utils.Lang

返回值:

類型說明
boolean返回true,當前元素為空元素。

示例:

let strXml =
            '< ?xml version="1.0" encoding="utf-8"? >' +
            '< note importance="high" logged="true" >' +
            '    < title >Happy< /title >' +
            '    < todo >Work< /todo >' +
            '    < todo >Play< /todo >' +
            '< /note >';
let textEncoder = new util.TextEncoder();
let arrbuffer = textEncoder.encodeInto(strXml);
let that = new xml.XmlPullParser(arrbuffer.buffer);
let arrTag = {};
let str = "";
let i = 0;
function func(key, value){
    arrTag[i] = 'key:'+key+' value:'+ value.isEmptyElementTag();
    str += arrTag[i];
    i++;
    return true; // Determines whether to continually parse, which is used to continue or terminate parsing.
}
let options = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func}
that.parse(options);
console.log(str);
// 輸出:
// key:0 value:falsekey:2 value:falsekey:10 value:falsekey:2 value:falsekey:4 value:falsekey:3 value:falsekey:10 value:falsekey:2 value:falsekey:4 value:falsekey:3 value:falsekey:10 value:falsekey:2 value:falsekey:4 value:falsekey:3 value:falsekey:3 value:falsekey:1 value:false

isWhitespace

isWhitespace(): boolean

判斷當前文本事件是否僅包含空格字符。

系統能力: SystemCapability.Utils.Lang

返回值:

類型說明
boolean返回true,當前文本事件僅包含空格字符。

示例:

let strXml =
            '< ?xml version="1.0" encoding="utf-8"? >' +
            '< note importance="high" logged="true" >' +
            '    < title >Happy< /title >' +
            '    < todo >Work< /todo >' +
            '    < todo >Play< /todo >' +
            '< /note >';
let textEncoder = new util.TextEncoder();
let arrbuffer = textEncoder.encodeInto(strXml);
let that = new xml.XmlPullParser(arrbuffer.buffer);
let arrTag = {};
let str = "";
let i = 0;
function func(key, value){
    arrTag[i] = 'key:'+key+' value:'+ value.isWhitespace();
    str += arrTag[i];
    i++;
    return true; // Determines whether to continually parse, which is used to continue or terminate parsing.
}
let options = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func}
that.parse(options);
console.log(str);
// 輸出:
// key:0 value:truekey:2 value:falsekey:10 value:truekey:2 value:truekey:4 value:falsekey:3 value:truekey:10 value:truekey:2 value:truekey:4 value:falsekey:3 value:truekey:10 value:truekey:2 value:truekey:4 value:falsekey:3 value:truekey:3 value:truekey:1 value:true

getAttributeCount

getAttributeCount(): number

獲取當前開始標記的屬性數。

系統能力: SystemCapability.Utils.Lang

返回值:

類型說明
number當前開始標記的屬性數。

示例:

let strXml =
            '< ?xml version="1.0" encoding="utf-8"? >' +
            '< note importance="high" logged="true" >' +
            '    < title >Happy< /title >' +
            '    < todo >Work< /todo >' +
            '    < todo >Play< /todo >' +
            '< /note >';
let textEncoder = new util.TextEncoder();
let arrbuffer = textEncoder.encodeInto(strXml);
let that = new xml.XmlPullParser(arrbuffer.buffer);
let arrTag = {};
let str = "";
let i = 0;
function func(key, value){
    arrTag[i] = 'key:'+key+' value:'+ value.getAttributeCount();
    str += arrTag[i];
    i++;
    return true; // Determines whether to continually parse, which is used to continue or terminate parsing.
}
let options = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func}
that.parse(options);
console.log(str);
// 輸出:
// key:0 value:0key:2 value:2key:10 value:0key:2 value:0key:4 value:0key:3 value:0key:10 value:0key:2 value:0key:4 value:0key:3 value:0key:10 value:0key:2 value:0key:4 value:0key:3 value:0key:3 value:0key:1 value:0

EventType

事件枚舉。

系統能力: 以下各項對應的系統能力均為SystemCapability.Utils.Lang

名稱說明
START_DOCUMENT0啟動文件事件。
END_DOCUMENT1結束文件事件。
START_TAG2啟動標簽事件。
END_TAG3結束標簽事件。
TEXT4文本事件。
CDSECT5CDATA事件。
COMMENT6XML注釋事件。
DOCDECL7XML文檔類型聲明事件。
INSTRUCTION8XML處理指令聲明事件。
ENTITY_REFERENCE9實體引用事件。
WHITESPACE10空白事件。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 接口
    +關注

    關注

    33

    文章

    7672

    瀏覽量

    148631
  • XML
    XML
    +關注

    關注

    0

    文章

    184

    瀏覽量

    32941
  • API
    API
    +關注

    關注

    2

    文章

    1388

    瀏覽量

    61011
  • 鴻蒙
    +關注

    關注

    55

    文章

    1677

    瀏覽量

    42140
  • OpenHarmony
    +關注

    關注

    23

    文章

    3349

    瀏覽量

    15184
收藏 人收藏

    評論

    相關推薦

    XML 在 HarmonyOS 中的生成,解析與轉換(上)

    一、XML 概述 XML(可擴展標記語言)是一種用于描述數據的標記語言,旨在提供一種通用的方式來傳輸和存儲數據,特別是 Web 應用程序中經常使用的數據。
    的頭像 發表于 02-18 09:35 ?441次閱讀

    XML在HarmonyOS中的生成,解析與轉換(下)

    一、XML 解析 對于以 XML 作為載體傳遞的數據,實際使用中需要對相關的節點進行解析,一般包括解析
    的頭像 發表于 02-18 10:07 ?459次閱讀

    ArkTS語言基礎-解析

    被設計用來傳輸和存儲數據,是一種可擴展標記語言。語言基礎提供了[XML生成、
    發表于 02-20 16:44

    鴻蒙原生應用開發-ArkTS語言基礎概述

    擴展標記語言。語言基礎提供了XML生成、解析與轉
    發表于 03-05 15:42

    xml SAX教程

    。不同于其他大多數XML標準的是,SAX沒有語言開發商必須遵守的標準SAX參考版本。因此,SAX的不同實現可能采用區別很大的接口。作為接口,SAX是事件驅動型XML解析的一個標準接口(
    發表于 10-07 13:32

    xml XPATH教程

    xml XPATH教程 什么是XPATH XPATH的基本語法 XPath API的介紹 XPath API接口的介紹
    發表于 10-07 14:05

    跪求大神--XML解析

    小弟近日做一案子,需要用到UDP通訊,內容以XML格式發送接收。通訊沒有問題,現在的難題是如何把接收到的XML信息直接解析出來,提取想要的字符串內容。NI里面有例子都是讀取文檔的,想問各路大神有沒有辦法直接從
    發表于 06-04 10:22

    OpenHarmony倉庫大整理 可以指定系統類型下載對應代碼

    關系不大,生命周期相對更長。平臺倉都組織在manifests/ohos/ohos.xml文件中,而芯片倉都組織在**manifests/chipsets/**目錄下。全量的代碼倉組織形式如下所示
    發表于 04-21 14:44

    OpenHarmony倉庫大整理 可以指定系統類型下載對應代碼

    相對更長。平臺倉都組織在manifests/ohos/ohos.xml文件中,而芯片倉都組織在**manifests/chipsets/**目錄下。全量的代碼倉組織形式如下所示:manifest
    發表于 05-12 15:44

    【中秋國慶不斷更】XML在HarmonyOS中的生成,解析與轉換(上)

    。 XML還支持命名空間、實體引用、注釋、處理指令等特性,使其能夠靈活地適應各種數據需求。 語言基礎提供了XML相關的基礎能力,包括:?
    發表于 09-27 15:21

    【中秋國慶不斷更】XML在HarmonyOS中的生成,解析與轉換(下)

    ;></span></span> 解析XML屬性和屬性值 1.引入模塊。 import xml from \'@ohos.xml
    發表于 09-27 15:24

    HarmonyOS語言基礎開發指南上線啦!

    指南中提供了詳細的介紹和開發指導,幫助開發者全面了解并發實現、容器基礎操作、XML生成解析與轉換等。 本期HarmonyOS開發者資料
    發表于 10-18 16:36

    報文解析工具中的XML數據字典

    針對報文解析過程中存在的數據存儲無序、查詢和調用不便等問題,提出應用XML 數據字典進行數據存儲的方案。根據給定的數據表,設計XML 形式的數據字典。實現XML 字典數據的解
    發表于 03-28 09:38 ?36次下載

    MTK自帶的XML解析

    現在大多數軟件都用xml作為配置文件,MTK本身也帶了XML文件的解析,在此我不評說自帶XML解析效率
    發表于 08-31 16:00 ?0次下載

    Java解析XML的一種數據綁定技術

    文中為了進一步用Java語言有效地解析XML文件,提出了一套XML文件與Java程序的綁定技術,通過該技術方法能夠使開發人員方便地將XML
    發表于 08-29 14:44 ?0次下載
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>