| title | XmlParser |
|---|
The XMLParser provides the ability to parse and extract data from XML documents.
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>
`)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.
xmlParser.parse(xmlString: string)Parses the supplied xml string.
The parser event data object has the following properties.
const eventType: ParserEventType = event.eventTypeReturns the type of the parser event. See ParserEventType
const position: Position = event.positionReturns the position (column number and line number) in the xml string where the event was generated.
const prefix: Position = event.prefixIf namespace processing is enabled, returns the prefix of the element if the eventType is ParserEventType.StartElement or ParserEventType.EndElement.
If namespace processing is enabled, returns the namespace of the element if the eventType is ParserEventType.StartElement or ParserEventType.EndElement.
Returns the name of the element if the eventType is ParserEventType.StartElement or ParserEventType.EndElement.
Returns a JSON object with the attributes of an element if the eventType is ParserEventType.StartElement.
Returns the relevant data if the eventType is ParserEventType.Text, ParserEventType.CDATA or ParserEventType.Comment.
Returns a JSON string representation of this instance.
The following are the available parser event types:
Specifies the StartElement event type.
Specifies the EndElement event type.
Specifies the Text event type.
Specifies the CDATA event type.
Specifies the Comment event type.