Discuss / Java / 请问如何让xml文档树状打印呢?

请问如何让xml文档树状打印呢?

Topic source

同上

numeiso

#2 Created at ... [Delete] [Delete and Lock User]

如果是缩进打印的话,可以修改一下 toXml 方法,每次调用加上缩进字符

public interface Node {

  Node add(Node node);

  List<Node> children();

  default String toXml() {
    return toXml("");
  };

  String toXml(String sep);

}
public class ElementNode implements Node {
  ...
  @Override
  public String toXml(String sep) {
    String start = sep + "<" + name + ">\n";
    String end = sep + "</" + name + ">\n";
    StringJoiner sj = new StringJoiner("", start, end);
    list.forEach(node -> {
      sj.add(node.toXml(sep + "  ") + "\n");
    });
    return sj.toString();
  }
}
public class CommentNode implements Node {
  ...
  @Override
  public String toXml(String sep) {
    return sep + "<!-- " + text + " -->";
  }
}
public class TextNode implements Node {
  ...
  @Override
  public String toXml(String sep) {
    return sep + text;
  }
}

  • 1

Reply