`

dom树打印

阅读更多
package demo;
import org.apache.xerces.parsers.DOMParser;
import org.junit.Test;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class XmlDomDemo
{
    @Test
    public void test()
    {
        String url = "conf/test/dispatcher-config.xml";
        parseAndPrint(url);
    }
    
    public void parseAndPrint(String uri)
    {
        Document doc = null;
        try
        {
            DOMParser parser = new DOMParser();
            parser.parse(uri);
            doc = parser.getDocument();
        }
        catch (Exception e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        if (doc != null)
            printDomTree(doc);
        
    }
    
    public void printDomTree(Node node)
    {
        int type = node.getNodeType();
        switch (type)
        {
            case Node.DOCUMENT_NODE:// document类型
                System.out.println("<?xml version=\"1.0\" ?>");
                printDomTree(((Document)node).getDocumentElement());
                break;
            case Node.ELEMENT_NODE:// 元素类型
                System.out.print("<");
                System.out.print(node.getNodeName());
                NamedNodeMap attrs = node.getAttributes();
                for (int i = 0; i < attrs.getLength(); i++)
                {
                    Node attr = attrs.item(i);
                    System.out.print(" " + attr.getNodeName() + "=\"" + attr.getNodeValue() + "\"");
                }
                System.out.print(">");
                NodeList children = node.getChildNodes();
                if (children != null)
                {
                    int len = children.getLength();
                    for (int i = 0; i < len; i++)
                        printDomTree(children.item(i));
                }
                break;
            case Node.ENTITY_REFERENCE_NODE:
                System.out.print("&");
                System.out.print(node.getNodeName());
                System.out.print(";");
                break;
            case Node.CDATA_SECTION_NODE:
                System.out.print("<![CDATA[");
                System.out.print(node.getNodeValue());
                System.out.print("]]>");
                break;
            case Node.TEXT_NODE:
                System.out.print(node.getNodeValue());
                break;
            case Node.PROCESSING_INSTRUCTION_NODE:
                System.out.print("<?");
                System.out.print(node.getNodeName());
                String data = node.getNodeValue();
                System.out.print(" ");
                System.out.print(data);
                System.out.print("?>");
                break;
        }
        if (type == Node.ELEMENT_NODE)
        {
            System.out.print("</");
            System.out.print(node.getNodeName());
            System.out.print(">");
        }
    }
}
分享到:
评论

相关推荐

    dom树的结构.doc

    DOM树是由一系列节点构成,每个节点代表文档中的一个部分,如元素、属性、文本等。 在DOM树中,文档的根节点是`Document`对象,它包含了整个XML或HTML文档。在给定的例子中,`&lt;students&gt;`元素是XML文档的根元素,但...

    dom-class-tree:从根节点或指定节点打印页面的DOM类树层次结构

    首先,我们需要理解DOM树是如何构建的。DOM树是HTML文档的节点表示,每个HTML标签对应一个DOM节点,包括元素节点、文本节点和属性节点等。从根节点(通常是`&lt;html&gt;`标签)开始,DOM树向下扩展,包括所有子元素,直至...

    脚本控制台 甲子版 通过控制台查看目的网页的DOM文档树,执行JavaScript脚本

    2,通过控制台查看目的网页的DOM文档树,执行JavaScript脚本, 界面介绍: 1, 命令历史窗口:保存命令的历史 2, 命令窗口 直接输入javascript语句,如:document.title; 将返回被调试页面的页面标题; ...

    用DOM-MSXML实现解析xml文件

    使用DOM-MSXML解析XML文件时,首先需要创建一个DOM解析器实例,然后加载XML文件到内存中形成DOM树。以下是一段基本的示例代码: ```vbscript Dim xmlDoc As New MSXML2.DOMDocument60 xmlDoc.async = False xmlDoc....

    JS操作XMLDOM(遍历和打印)

    5. **节点操作**:`appendChild`、`removeChild`、`insertBefore`和`replaceChild`用于在DOM树中添加、删除、插入和替换节点。 6. **打印和显示XML**:可以使用循环和递归遍历DOM,将节点信息转化为字符串,并用`...

    java_dom解析xml xml java

    - DOM解析器负责将XML文档转换为DOM树结构,以便于程序可以访问和操作文档中的各个元素。 - 通常使用`DocumentBuilderFactory`和`DocumentBuilder`两个类来创建DOM解析器。 2. **DOM树** - DOM树是XML文档的一种...

    TreePrinter:使用AngularJS在DOM中打印的JS树结构

    **TreePrinter: 在DOM中打印JS树结构** `TreePrinter`项目旨在实现一个功能,即在DOM中以树形结构显示JavaScript数据。它采用了两种常见的方法来实现这一目标:迭代和递归。 1. **递归方法**: 递归是处理树形结构...

    Extension showDomTree-crx插件

    2. **打印DOM树**:除了可视化展示,插件还允许用户将DOM树打印出来,以便于离线研究或者课堂讲解。打印功能使得用户可以将复杂的DOM结构保存为纸质版,方便在没有电脑或网络的情况下进行参考。 值得注意的是,这款...

    dom_xml_demo

    3. 遍历XML结构:提供代码展示如何遍历DOM树并打印出所有元素或特定元素。 4. 查询元素:展示如何使用`getElementsByTagName`、`getElementById`等方法找到特定元素。 5. 修改XML:包含修改元素属性、添加新元素、...

    java_dom应用

    其中,`FileInputStream`用于读取文件输入流,`DocumentBuilder`和`DocumentBuilderFactory`用于构建DOM树,而`Document`、`Node`和`NodeList`则提供了对DOM树进行操作的接口。 #### 2. 创建 Document 对象 通过`...

    dom4j-1.6.1.rar

    DOM4J的DOM实现提供了一种高效且易于使用的API来处理DOM树。 2. **SAX解析**:SAX是一种事件驱动的解析器,仅在需要时读取XML文档,这使得它在处理大型XML文件时更为高效。DOM4J的SAX解析器会触发一系列事件,如...

    DomTree-crx插件

    语言:English domtree,在控制台上打印dom树 domtree,在控制台中打印DOM树计数

    dom4j jar包和简单实例

    在XML处理中,DOM(Document Object Model)是一种标准的表示XML文档的树形结构,而DOM4J则是对DOM接口的一种实现,但它比标准DOM更轻量级,性能更好。DOM4J不仅支持DOM,还支持SAX和StAX解析器,可以适应不同的处理...

    前端开源库-virtual-dom-stringify

    "的虚拟DOM树,然后使用`stringify`函数将其转换为HTML字符串并打印出来。 总之,“virtual-dom-stringify”是一个实用的前端工具,它使得处理和理解虚拟DOM变得更为直观和便捷。通过将虚拟DOM树转换为HTML字符串,...

    dom4j解析案例

    SAX是事件驱动的,适用于大文件,而DOM4J的DOM解析会构建整个XML文档的树形结构,适合小型或中型文件。在这个案例中,我们可能使用DOM解析,因为它允许我们方便地遍历整个XML结构。 2. **节点操作**:在DOM4J中,...

    dom4j的例子,xpp3

    例如,可以定义一个打印所有元素名称的Visitor,遍历整个XML树,打印出每个元素的名称。 4. 示例代码: - 创建XML: ```java Document document = DocumentHelper.createDocument(); Element root = document....

    Laravel开发-htmldom

    HTML DOM(Document Object Model)是HTML和XML文档的一种结构化表示,它将文档视为树形结构,允许开发者通过JavaScript或PHP等编程语言对文档进行查找、修改和操纵。在PHP中,有许多库可以用来操作DOM,其中一个...

    DOM4J 解析XML

    DOM,即文档对象模型,会构建一个完整的XML树,适合小型或中等大小的文档,便于在整个文档结构中进行导航。 **DOM4J的主要组件和概念:** 1. **Element(元素)**:XML文档中的每个标签都被表示为一个Element对象...

    dom4j简单例子

    - **Document**: 表示整个XML文档,它是DOM4J树结构的根节点。 - **Element**: 表示XML中的元素,每个元素都有一个唯一的标签名。 - **Attribute**: 元素可以有属性,用于存储附加信息。 - **Text**: 存储元素中...

    Delphi-RADStudio示例DOM

    1. **读取XML文件**:使用TXMLDocument的LoadFromFile或LoadFromStream方法加载XML文件或流,构建DOM树。 2. **解析XML**:TXMLDocument会自动解析XML,处理命名空间、属性和元素。 3. **查找元素**:通过...

Global site tag (gtag.js) - Google Analytics