XML Parsing and Generation

icon-note.gif NOTE The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.

Modules to Import

import xml from '@ohos.xml';

System Capabilities

SystemCapability.Utils.Lang

XmlSerializer

constructor

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

A constructor used to create an XmlSerializer instance.

Parameters

Name Type Mandatory Description
buffer ArrayBuffer | DataView Yes ArrayBuffer or DataView for storing the XML information to write.
encoding string No Encoding format.

Example

var arrayBuffer = new ArrayBuffer(1024);
var bufView = new DataView(arrayBuffer);
var thatSer = new xml.XmlSerializer(bufView);

setAttributes

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

Sets an attribute.

Parameters

Name Type Mandatory Description
name string Yes Key of the attribute.
value string Yes Value of the attribute.

Example

var thatSer = new xml.XmlSerializer(bufView);
thatSer.setAttributes("importance", "high");  

addEmptyElement

addEmptyElement(name: string): void

Adds an empty element.

Parameters

Name Type Mandatory Description
name string Yes Name of the empty element to add.

Example

var thatSer = new xml.XmlSerializer(bufView);
thatSer.addEmptyElement("b"); // => <b/>

setDeclaration

setDeclaration(): void

Sets a declaration.

Example

var thatSer = new xml.XmlSerializer(bufView);
thatSer.setDeclaration() // => <?xml version="1.0" encoding="utf-8"?>;

startElement

startElement(name: string): void

Writes the start tag based on the given element name.

Parameters

Name Type Mandatory Description
name string Yes Name of the element.

Example

var arrayBuffer = new ArrayBuffer(1024);
var thatSer = new xml.XmlSerializer(arrayBuffer);
thatSer.startElement("notel");
thatSer.endElement();// => '<notel/>';

endElement

endElement(): void

Writes the end tag of the element.

Example

var thatSer = new xml.XmlSerializer(bufView);
thatSer.setNamespace("h", "http://www.w3.org/TR/html4/");
thatSer.startElement("table");
thatSer.setAttributes("importance", "high");
thatSer.setText("Happy");
endElement(); // => <h:table importance="high" xmlns:h="http://www.w3.org/TR/html4/">Happy</h:table>

setNamespace

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

Sets the namespace for an element tag.

Parameters

Name Type Mandatory Description
prefix string Yes Prefix of the element and its child elements.
namespace string Yes Namespace to set.

Example

var arrayBuffer = new ArrayBuffer(1024);
var thatSer = new xml.XmlSerializer(arrayBuffer);
thatSer.setDeclaration();
thatSer.setNamespace("h", "http://www.w3.org/TR/html4/");
thatSer.startElement("note");
thatSer.endElement();// = >'<?xml version="1.0" encoding="utf-8"?>\r\n<h:note xmlns:h="http://www.w3.org/TR/html4/"/>';

setComment

setComment(text: string): void

Sets the comment.

Parameters

Name Type Mandatory Description
text string Yes Comment to set.

Example

var arrayBuffer = new ArrayBuffer(1024);
var thatSer = new xml.XmlSerializer(arrayBuffer);
thatSer.startElement("note");
thatSer.setComment("Hi!");
thatSer.endElement(); // => '<note>\r\n  <!--Hi!-->\r\n</note>';

setCDATA

setCDATA(text: string): void

Sets CDATA attributes.

Parameters

Name Type Mandatory Description
text string Yes CDATA attribute to set.

Example

var arrayBuffer = new ArrayBuffer(1028);
var thatSer = new xml.XmlSerializer(arrayBuffer);
thatSer.setCDATA('root SYSTEM') // => '<![CDATA[root SYSTEM]]>';

setText

setText(text: string): void

Sets Text.

Parameters

Name Type Mandatory Description
text string Yes Content of the Text to set.

Example

var arrayBuffer = new ArrayBuffer(1024);
var thatSer = new xml.XmlSerializer(arrayBuffer);
thatSer.startElement("note");
thatSer.setAttributes("importance", "high");
thatSer.setText("Happy1");
thatSer.endElement(); // => '<note importance="high">Happy1</note>';

setDocType

setDocType(text: string): void

Sets DocType.

Parameters

Name Type Mandatory Description
text string Yes Content of DocType to set.

Example

var arrayBuffer = new ArrayBuffer(1024);
var thatSer = new xml.XmlSerializer(arrayBuffer);
thatSer.setDocType('root SYSTEM'); // => '<!DOCTYPE root SYSTEM>';

XmlPullParser

XmlPullParser

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

Creates and returns an XmlPullParser object. The XmlPullParser object passes two parameters. The first parameter is the memory of the ArrayBuffer or DataView type, and the second parameter is the file format (UTF-8 by default).

Parameters

Name Type Mandatory Description
buffer ArrayBuffer | DataView Yes ArrayBuffer or DataView that contains XML text information.
encoding string No Encoding format. Only UTF-8 is supported.

Example

var strXml =
            '<?xml version="1.0" encoding="utf-8"?>' +
            '<note importance="high" logged="true">' +
            '    <title>Happy</title>' +
            '    <todo>Work</todo>' +
            '    <todo>Play</todo>' +
            '</note>';
var arrayBuffer = new ArrayBuffer(strXml.length*2);
var bufView = new Uint8Array(arrayBuffer);
var strLen = strXml.length;
for (var i = 0; i < strLen; ++i) {
    bufView[i] = strXml.charCodeAt(i);// Set the ArrayBuffer mode.
}
var that = new xml.XmlPullParser(arrayBuffer);

parse

parse(option: ParseOptions): void

Parses XML information.

Parameters

Name Type Mandatory Description
option ParseOptions Yes Options for controlling and obtaining the parsed information.

Example

var strXml =
            '<?xml version="1.0" encoding="utf-8"?>' +
            '<note importance="high" logged="true">' +
            '    <title>Happy</title>' +
            '    <todo>Work</todo>' +
            '    <todo>Play</todo>' +
            '</note>';
var arrayBuffer = new ArrayBuffer(strXml.length*2);
var bufView = new Uint8Array(arrayBuffer);
var strLen = strXml.length;
for (var i = 0; i < strLen; ++i) {
    bufView[i] = strXml.charCodeAt(i);
}
var that = new xml.XmlPullParser(arrayBuffer);
var arrTag = {};
arrTag[0] = '132';
var i = 1;
function func(key, value){
    arrTag[i] = 'key:'+key+' value:'+ value.getDepth();
    i++;
    return true;
}
var options = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func}
that.parse(options);

ParseOptions

Defines the XML parsing options.

Name Type Mandatory Description
supportDoctype boolean No Whether to ignore Doctype. The default value is false.
ignoreNameSpace boolean No Whether to ignore Namespace. The default value is false.
tagValueCallbackFunction (name: string, value: string)=> boolean No Callback used to return tagValue.
attributeValueCallbackFunction (name: string, value: string)=> boolean No Callback used to return attributeValue.
tokenValueCallbackFunction (eventType: EventType, value: ParseInfo)=> boolean No Callback used to return tokenValue.

ParseInfo

Provides APIs to manage the parsed XML information.

getColumnNumber

getColumnNumber(): number

Obtains the column line number, which starts from 1.

Return value

Type Description
number Column number obtained.

getDepth

getDepth(): number

Obtains the depth of this element.

Return value

Type Description
number Depth obtained.

getLineNumber

getLineNumber(): number

Obtains the current line number, starting from 1.

Return value

Type Description
number Line number obtained.

getName

getName(): string

Obtains the name of this element.

Return value

Type Description
string Element name obtained.

getNamespace

getNamespace(): string

Obtains the namespace of this element.

Return value

Type Description
string Namespace obtained.

getPrefix

getPrefix(): string

Obtains the prefix of this element.

Return value

Type Description
string Element prefix obtained.

getText

getText(): string

Obtains the text of the current event.

Return value

Type Description
string Text content obtained.

isEmptyElementTag

isEmptyElementTag(): boolean

Checks whether the current element is empty.

Return value

Type Description
boolean Returns true if the element is empty; returns false otherwise.

isWhitespace

isWhitespace(): boolean

Checks whether the current text event contains only whitespace characters.

Return value

Type Description
boolean Returns true if the text event contains only whitespace characters; returns false otherwise.

getAttributeCount

getAttributeCount(): number

Obtains the number of attributes for the current start tag.

Return value

Type Description
number Number of attributes obtained.

EventType

Enumerates the events.

Name Value Description
START_DOCUMENT 0 Indicates a start document event.
END_DOCUMENT 1 Indicates an end document event.
START_TAG 2 Indicates a start tag event.
END_TAG 3 Indicates an end tag event.
TEXT 4 Indicates a text event.
CDSECT 5 Indicates a CDATA section event.
COMMENT 6 Indicates an XML comment event.
DOCDECL 7 Indicates an XML document type declaration event.
INSTRUCTION 8 Indicates an XML processing instruction event.
ENTITY_REFERENCE 9 Indicates an entity reference event.
WHITESPACE 10 Indicates a whitespace character event.