xml代码树显示2 : DOM编辑 « 可扩展标记语言 « Java

En
Java
1. 图形用户界面
2. 三维图形动画
3. 高级图形
4. 蚂蚁编译
5. Apache类库
6. 统计图
7. 
8. 集合数据结构
9. 数据类型
10. 数据库JDBC
11. 设计模式
12. 开发相关类
13. EJB3
14. 电子邮件
15. 事件
16. 文件输入输出
17. 游戏
18. 泛型
19. GWT
20. Hibernate
21. 本地化
22. J2EE平台
23. 基于J2ME
24. JDK-6
25. JNDI的LDAP
26. JPA
27. JSP技术
28. JSTL
29. 语言基础知识
30. 网络协议
31. PDF格式RTF格式
32. 映射
33. 常规表达式
34. 脚本
35. 安全
36. Servlets
37. Spring
38. Swing组件
39. 图形用户界面
40. SWT-JFace-Eclipse
41. 线程
42. 应用程序
43. Velocity
44. Web服务SOA
45. 可扩展标记语言
Java 教程
Java » 可扩展标记语言 » DOM编辑屏幕截图 
xml代码树显示2
  
//Example XML document
/*
 An XML Document Containing a Simple Contact List
Start example

<?xml version="1.0" standalone="yes"?>

<folks>
    <person>
        <phone>306 555-9999</phone>
        <email>joe@webserver.net</email>
        <name>Wang, Joe</name>
    </person>
    <person>
        <phone>704 555-0000</phone>
        <name>Pet, Rob</name>
        <email>rob@server.com</email>
    </person>
</folks>

*/

import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Attr;
import org.w3c.dom.CDATASection;
import org.w3c.dom.Comment;
import org.w3c.dom.Document;
import org.w3c.dom.DocumentFragment;
import org.w3c.dom.DocumentType;
import org.w3c.dom.Element;
import org.w3c.dom.Entity;
import org.w3c.dom.EntityReference;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Notation;
import org.w3c.dom.ProcessingInstruction;
import org.w3c.dom.Text;
import org.xml.sax.ErrorHandler;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;

public class TreeDumper2 {
  public void dump(Document doc) {
    dumpLoop((Nodedoc, "");
  }

  private void dumpLoop(Node node, String indent) {
    switch (node.getNodeType()) {
    case Node.ATTRIBUTE_NODE:
      dumpAttributeNode((Attrnode, indent);
      break;
    case Node.CDATA_SECTION_NODE:
      dumpCDATASectionNode((CDATASectionnode, indent);
      break;
    case Node.COMMENT_NODE:
      dumpCommentNode((Commentnode, indent);
      break;
    case Node.DOCUMENT_NODE:
      dumpDocument((Documentnode, indent);
      break;
    case Node.DOCUMENT_FRAGMENT_NODE:
      dumpDocumentFragment((DocumentFragmentnode, indent);
      break;
    case Node.DOCUMENT_TYPE_NODE:
      dumpDocumentType((DocumentTypenode, indent);
      break;
    case Node.ELEMENT_NODE:
      dumpElement((Elementnode, indent);
      break;
    case Node.ENTITY_NODE:
      dumpEntityNode((Entitynode, indent);
      break;
    case Node.ENTITY_REFERENCE_NODE:
      dumpEntityReferenceNode((EntityReferencenode, indent);
      break;
    case Node.NOTATION_NODE:
      dumpNotationNode((Notationnode, indent);
      break;
    case Node.PROCESSING_INSTRUCTION_NODE:
      dumpProcessingInstructionNode((ProcessingInstructionnode, indent);
      break;
    case Node.TEXT_NODE:
      dumpTextNode((Textnode, indent);
      break;
    default:
      System.out.println(indent + "Unknown node");
      break;
    }

    NodeList list = node.getChildNodes();
    for (int i = 0; i < list.getLength(); i++)
      dumpLoop(list.item(i), indent + "   ");
  }

  /* Display the contents of a ATTRIBUTE_NODE */
  private void dumpAttributeNode(Attr node, String indent) {
    System.out.println(indent + "ATTRIBUTE " + node.getName() "=\""
        + node.getValue() "\"");
  }

  /* Display the contents of a CDATA_SECTION_NODE */
  private void dumpCDATASectionNode(CDATASection node, String indent) {
    System.out.println(indent + "CDATA SECTION length=" + node.getLength());
    System.out.println(indent + "\"" + node.getData() "\"");
  }

  /* Display the contents of a COMMENT_NODE */
  private void dumpCommentNode(Comment node, String indent) {
    System.out.println(indent + "COMMENT length=" + node.getLength());
    System.out.println(indent + "  " + node.getData());
  }

  /* Display the contents of a DOCUMENT_NODE */
  private void dumpDocument(Document node, String indent) {
    System.out.println(indent + "DOCUMENT");
  }

  /* Display the contents of a DOCUMENT_FRAGMENT_NODE */
  private void dumpDocumentFragment(DocumentFragment node, String indent) {
    System.out.println(indent + "DOCUMENT FRAGMENT");
  }

  /* Display the contents of a DOCUMENT_TYPE_NODE */
  private void dumpDocumentType(DocumentType node, String indent) {
    System.out.println(indent + "DOCUMENT_TYPE: " + node.getName());
    if (node.getPublicId() != null)
      System.out.println(indent + " Public ID: " + node.getPublicId());
    if (node.getSystemId() != null)
      System.out.println(indent + " System ID: " + node.getSystemId());
    NamedNodeMap entities = node.getEntities();
    if (entities.getLength() 0) {
      for (int i = 0; i < entities.getLength(); i++) {
        dumpLoop(entities.item(i), indent + "  ");
      }
    }
    NamedNodeMap notations = node.getNotations();
    if (notations.getLength() 0) {
      for (int i = 0; i < notations.getLength(); i++)
        dumpLoop(notations.item(i), indent + "  ");
    }
  }

  /* Display the contents of a ELEMENT_NODE */
  private void dumpElement(Element node, String indent) {
    System.out.println(indent + "ELEMENT: " + node.getTagName());
    NamedNodeMap nm = node.getAttributes();
    for (int i = 0; i < nm.getLength(); i++)
      dumpLoop(nm.item(i), indent + "  ");
  }

  /* Display the contents of a ENTITY_NODE */
  private void dumpEntityNode(Entity node, String indent) {
    System.out.println(indent + "ENTITY: " + node.getNodeName());
  }

  /* Display the contents of a ENTITY_REFERENCE_NODE */
  private void dumpEntityReferenceNode(EntityReference node, String indent) {
    System.out.println(indent + "ENTITY REFERENCE: " + node.getNodeName());
  }

  /* Display the contents of a NOTATION_NODE */
  private void dumpNotationNode(Notation node, String indent) {
    System.out.println(indent + "NOTATION");
    System.out.print(indent + "  " + node.getNodeName() "=");
    if (node.getPublicId() != null)
      System.out.println(node.getPublicId());
    else
      System.out.println(node.getSystemId());
  }

  /* Display the contents of a PROCESSING_INSTRUCTION_NODE */
  private void dumpProcessingInstructionNode(ProcessingInstruction node,
      String indent) {
    System.out.println(indent + "PI: target=" + node.getTarget());
    System.out.println(indent + "  " + node.getData());
  }

  /* Display the contents of a TEXT_NODE */
  private void dumpTextNode(Text node, String indent) {
    System.out.println(indent + "TEXT length=" + node.getLength());
    System.out.println(indent + "  " + node.getData());
  }

  static public void main(String[] arg) {
    String filename = null;
    boolean validate = false;

    if (arg.length == 1) {
      filename = arg[0];
    else if (arg.length == 2) {
      if (!arg[0].equals("-v"))
        usage();
      validate = true;
      filename = arg[1];
    else {
      usage();
    }

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    dbf.setValidating(validate);
    dbf.setNamespaceAware(true);
    dbf.setIgnoringElementContentWhitespace(true);

    // Parse the input to produce a parse tree with its root
    // in the form of a Document object
    Document doc = null;
    try {
      DocumentBuilder builder = dbf.newDocumentBuilder();
      builder.setErrorHandler(new MyErrorHandler());
      InputSource is = new InputSource(filename);
      doc = builder.parse(is);
    catch (SAXException e) {
      System.exit(1);
    catch (ParserConfigurationException e) {
      System.err.println(e);
      System.exit(1);
    catch (IOException e) {
      System.err.println(e);
      System.exit(1);
    }

    // Use a TreeDumper to list the tree
    TreeDumper2 td = new TreeDumper2();
    td.dump(doc);
  }

  private static void usage() {
    System.err.println("Usage: DOMCheck [-v] <filename>");
    System.exit(1);
  }
}

class MyErrorHandler implements ErrorHandler {
  public void warning(SAXParseException ethrows SAXException {
    show("Warning", e);
    throw (e);
  }

  public void error(SAXParseException ethrows SAXException {
    show("Error", e);
    throw (e);
  }

  public void fatalError(SAXParseException ethrows SAXException {
    show("Fatal Error", e);
    throw (e);
  }

  private void show(String type, SAXParseException e) {
    System.out.println(type + ": " + e.getMessage());
    System.out.println("Line " + e.getLineNumber() " Column "
        + e.getColumnNumber());
    System.out.println("System ID: " + e.getSystemId());
  }
}

           
         
    
  
Related examples in the same category
1. Creates element node, attribute node, comment node, processing instruction and a CDATA section
2. Java的DOM编辑:找到节点,并改变其内容
3. Java的DOM编辑:用兄弟姐妹定位节点
4. Java的DOM修改:删除第一个孩子的根节点
5. Java的DOM编辑:更换现有节点
6. Java的DOM编辑:添加一个因素,其中包括所有名称
7. Java的DOM编辑:复制子树
8. Java的DOM编辑:添加属性元素
9. Java的DOM编辑:删除两个属性
10. Java的DOM编辑:复制属性
11. Java DOM edit: A Method to Find an ID Value and Print the Element Text
12. Java的DOM编辑:替换修改文字
13. Java的DOM编辑:剪贴修改文本
14. Java的DOM编辑:编辑文字插入和替换
15. Java的DOM编辑:更换文本节点
16. Java的DOM编辑:一个文本节点分裂成三个
17. Java的DOM编辑:规范所有文字
18. Java的DOM编辑:创建一个新的DOM解析树
19. Java的DOM编辑:从一个到另一个分析树复制节点
20. Java DOM edit: Creating a DocumentFragment Subtree and Appending to the Document
21. Java的DOM编辑:插入一个处理指令和注释
22. 插入一个新条目
23. 添加文件开头评论
24. 改变某一特定的XML节点
25. 创建一个新因素和移动文字
26. 插入新的元素
www.java2java.com | Contact Us
Copyright 2010 - 2030 Java Source and Support. All rights reserved.
All other trademarks are property of their respective owners.