import 'package:html/dom.dart';
import 'package:html/dom_parsing.dart';
import 'package:html/parser.dart';
void main(List args) {
var document = parse('''
Header 1
Text.
Header 2
More text.
''');
// outerHtml output
print('outer html:');
print(document.outerHtml);
print('');
// visitor output
print('html visitor:');
_Visitor().visit(document);
}
// Note: this example visitor doesn't handle things like printing attributes and
// such.
class _Visitor extends TreeVisitor {
String indent = '';
@override
void visitText(Text node) {
if (node.data.trim().isNotEmpty) {
print('$indent${node.data.trim()}');
}
}
@override
void visitElement(Element node) {
if (isVoidElement(node.localName)) {
print('$indent<${node.localName}/>');
} else {
print('$indent<${node.localName}>');
indent += ' ';
visitChildren(node);
indent = indent.substring(0, indent.length - 2);
print('$indent${node.localName}>');
}
}
@override
void visitChildren(Node node) {
for (var child in node.nodes) {
visit(child);
}
}
}