import "./element/default"; import { ParseContext, LocationContext } from "../context"; import { XmlStreamReader } from "../reader"; import { Node } from "./node"; import { desanitize, sanitize } from "../util"; const escapeCharacters = { '&': "&", '<': "<", '>': ">", }; export class TextNode extends Node { static async parse(reader: XmlStreamReader, _context: ParseContext): Promise { const symbol = await reader.readKind("text"); return new TextNode(desanitize(symbol.text, escapeCharacters), LocationContext.fromStreamSymbol(reader, symbol)); } constructor(protected text: string, position?: LocationContext) { super(position) } setContents(text: string) { this.text = text } getContents() { return this.text } toString() { return sanitize(this.getContents(), escapeCharacters) } }