From a16024ff4f70a5cf0029c475d1dc8e2499a44e94 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 14 Feb 2016 13:05:15 +0000 Subject: Do all HTML writing in HtmlWriter --- .../java/org/zwobble/mammoth/html/HtmlWriter.java | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'src/main/java/org/zwobble/mammoth/html/HtmlWriter.java') diff --git a/src/main/java/org/zwobble/mammoth/html/HtmlWriter.java b/src/main/java/org/zwobble/mammoth/html/HtmlWriter.java index 50bf85b..bb98925 100644 --- a/src/main/java/org/zwobble/mammoth/html/HtmlWriter.java +++ b/src/main/java/org/zwobble/mammoth/html/HtmlWriter.java @@ -5,6 +5,38 @@ import java.util.Map; import static org.zwobble.mammoth.util.MammothLists.orderedBy; public class HtmlWriter { + public static void write(HtmlNode node, StringBuilder builder) { + node.visit(new HtmlNode.Visitor() { + @Override + public void visit(HtmlElement element) { + builder.append("<").append(element.getTagName()); + + HtmlWriter.generateAttributes(element.getAttributes(), builder); + + builder.append(">"); + + element.getChildren().forEach(node -> write(node, builder)); + + builder + .append(""); + } + + @Override + public void visit(HtmlSelfClosingElement element) { + builder.append("<").append(element.getTagName()); + HtmlWriter.generateAttributes(element.getAttributes(), builder); + builder.append(" />"); + } + + @Override + public void visit(HtmlTextNode node) { + builder.append(HtmlWriter.escapeText(node.getValue())); + } + }); + } + public static String escapeText(String text) { return text.replace("&", "&").replace("<", "<").replace(">", ">"); } -- cgit v1.2.3