getText static method
Given an XmlNode this will return the raw XmlNodeType.TEXT String
Implementation
static String? getText(XmlNode? node, {bool innerXmlAsText = false}) {
// node is text or cdata
if (node?.nodeType == XmlNodeType.TEXT ||
node?.nodeType == XmlNodeType.CDATA) return node?.value;
// return node inner xml as text
if (innerXmlAsText) {
bool isText = (node?.children.firstWhereOrNull((child) =>
(child is XmlCDATA || child is XmlText || child is XmlComment)
? false
: true) ==
null);
var text = isText ? node?.innerText.trim() : node?.innerXml.trim();
//text = text?.replaceAll('\r', '').replaceAll('\t', '').replaceAll('\n', '').trim();
return text;
}
// traverse child nodes
if ((node?.children.isNotEmpty == true)) {
String? text;
for (XmlNode n in node!.children) {
String? s;
if ((n.nodeType == XmlNodeType.TEXT) ||
(n.nodeType == XmlNodeType.CDATA)) s = n.value;
if (s != null) text = (text ?? '') + s.trim();
}
return text;
}
return null;
}