diff options
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/html/HtmlWriter.java')
| -rw-r--r-- | src/main/java/org/zwobble/mammoth/html/HtmlWriter.java | 32 |
1 files changed, 32 insertions, 0 deletions
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("</") + .append(element.getTagName()) + .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(">", ">"); } |
