Fundamental Concepts
XmlParser
The XMLParser provides the ability to parse and extract data from XML documents.
Using XmlParser โ
To parse an xml document, first institiate the class with the ParserEvent handler.
const xmlParser = new XmlParser(this.onEventCallback);
onEventCallback(event: ParserEvent) {
switch (event.eventType) {
case ParserEventType.StartElement:
if (event.attributes) {
for (const attributeName in event.attributes) {
if (event.attributes.hasOwnProperty(attributeName)) {
console.log({
eventType: event.eventType,
elementName: event.elementName,
attributeName: attributeName,
result: event.attributes[attributeName],
significantText: null,
});
}
}
} else {
console.log({
eventType: event.eventType,
elementName: event.elementName,
attributeName: null,
result: null,
significantText: null,
});
}
break;
case ParserEventType.EndElement:
console.log({
eventType: event.eventType,
elementName: event.elementName,
attributeName: null,
result: null,
significantText: null,
});
break;
case ParserEventType.Text:
const significantText = event.data.trim();
if (significantText !== '') {
console.log({
eventType: event.eventType,
elementName: null,
attributeName: null,
result: null,
significantText: significantText,
});
}
break;
default:
break;
}
}Then call the parse method on the instance passing it the data to be parsed.
xmlParser.parse(`
<Document>
<First attr1=\ "attribute1\" attr2=\ "attribute2\">I am first</First>
<Second>I am second</Second>
<Third>
<FirstChild attr3=\ "attribute3\"></FirstChild>
</Third>
</Document>
`)XmlParser API โ
constructor โ
const xmlParser = new XmlParser(onEvent: (event: ParserEvent) => void, onError?: (error: Error, position: Position) => void, processNamespaces?: boolean, angularSyntax?: boolean)Creates a new instance of the XmlParser class.
onEventis the callback to execute when a parser event occurs.Optional:
onErroris the callback to execute when a parser error occurs. Theerrorparameter contains the error and thepositionrepresents the position of the parsing error.Optional:
processNamespacesspecifies whether namespaces should be processed.
parse() โ
xmlParser.parse(xmlString: string)Parses the supplied xml string.
ParserEvent โ
The parser event data object has the following properties.
eventType โ
const eventType: ParserEventType = event.eventTypeReturns the type of the parser event. See ParserEventType
position โ
const position: Position = event.positionReturns the position (column number and line number) in the xml string where the event was generated.
prefix โ
const prefix: Position = event.prefixIf namespace processing is enabled, returns the prefix of the element if the eventType is ParserEventType.StartElement or ParserEventType.EndElement.
namespace โ
If namespace processing is enabled, returns the namespace of the element if the eventType is ParserEventType.StartElement or ParserEventType.EndElement.
elementName โ
Returns the name of the element if the eventType is ParserEventType.StartElement or ParserEventType.EndElement.
attributes โ
Returns a JSON object with the attributes of an element if the eventType is ParserEventType.StartElement.
data โ
Returns the relevant data if the eventType is ParserEventType.Text, ParserEventType.CDATA or ParserEventType.Comment.
toString() โ
Returns a JSON string representation of this instance.
ParserEventType โ
The following are the available parser event types:
StartElement โ
Specifies the StartElement event type.
EndElement โ
Specifies the EndElement event type.
ParserEventType.Text โ
Specifies the Text event type.
ParserEventType.CDATA โ
Specifies the CDATA event type.
ParserEventType.Comment โ
Specifies the Comment event type.
- Previous
- Utils
- Next
- Data Binding
