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.
-
onEvent
is the callback to execute when a parser event occurs. -
Optional:
onError
is the callback to execute when a parser error occurs. Theerror
parameter contains the error and theposition
represents the position of the parsing error. -
Optional:
processNamespaces
specifies 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.eventType
Returns the type of the parser event. See ParserEventType
const position: Position = event.position
Returns the position (column number and line number) in the xml string where the event was generated.
const prefix: Position = event.prefix
If 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.