`
xinyoulinglei
  • 浏览: 124156 次
社区版块
存档分类
最新评论

XmlTree

    博客分类:
  • java
xml 
阅读更多

package com.huawei.bss.xml;


import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;


/**
* The Class XmlTree.
*/
public class XmlTree
{

    /** The root. */
    private XmlNode root = null;

    /**
     * Instantiates a new xml tree.
     */
    public XmlTree()
    {
    }

    /**
     * Instantiates a new xml tree.
     *
     * @param root the root
     */
    public XmlTree(XmlNode root)
    {
        this.root = root;
    }

    /**
     * Gets the root.
     *
     * @return the root
     */
    public XmlNode getRoot()
    {
        return this.root;
    }

    /**
     * Sets the root.
     *
     * @param root the new root
     */
    public void setRoot(XmlNode root)
    {
        this.root = root;
    }

    /**
     * Show all.
     */
    public void showAll()
    {
        if (this.root == null)
        {
            System.out.println("null");
        }
        else
        {
            System.out.println(show(this.root, 0));
        }
    }

    /**
     * Show.
     *
     * @param node the node
     * @param space the space
     * @return the string
     */
    private String show(XmlNode node, int space)
    {
        StringBuilder str = new StringBuilder();
        for (int i = 0; i < space; ++i)
        {
            str.append("    ");
        }
        str.append("<").append(node.getTagName());
        if (node.getAttributes().size() > 0)
        {
            str.append(" ").append(getNodeAttribs(node.getAttributes()));
        }
        str.append(">");
        if (node.getChildren() != null)
        {
            int size=node.getChildren().size();
            for (int i = 0; i < size; ++i)
            {
                str.append("\r\n");
                str.append(show((XmlNode) node.getChildren().get(i),
                    space + 1));
               
                //得到子类的Node
                XmlNode childNode=(XmlNode)node.getChildren().get(i);
                if (node.getChildren().get(i).getClass() == XmlNode.class)
                {
                    str.append("</").append(childNode.getTagName()).append(">");
                }
            }
        }
       
        if(node.isRoot())
        {
            str.append("\r\n</").append(node.getTagName()).append(">");
        }

        return str.toString();
    }

    /**
     * Gets the node attribs.
     *
     * @param attribs the attribs
     * @return the node attribs
     */
    private String getNodeAttribs(Map<String, String> attribs)
    {
        StringBuilder sb = new StringBuilder();
        for (Iterator<Entry<String, String>> iterator =
            attribs.entrySet().iterator(); iterator.hasNext();)
        {
            Entry<String, String> e = iterator.next();
            String key = e.getKey();
            String value = e.getValue();
            sb.append(key).append("=").append("\"").append(value).append("\"")
                .append(" ");

        }

        return sb.toString();
    }
}
分享到:
评论

相关推荐

    无刷新树XMLtree源码 xmltree.v1.2_21

    此js的树控件,可以从XML中加载数据。当然这个XML可以使用asp/jsp动态输出。还可以异步加载数据,这种方式是仿照msdn online...此能够适应大多数的应用要求。在xml中提供树状结构的样式属性,能够方便的改变显示的效果

    JAVA xmltree 实现 树的实现

    JAVA 后台生成一个XML文件的树的实现

    XmlTree 树菜单脚本实例

    通过这个测试实例你将学会如何使用一个树形菜单。具体参数说明:xmltree.xml文件内,运行效果:http://www.codefans.net/upload/softimg/11/21995.gif

    XMLtree13模块源码支持CDATAUTF8可替代XML支持库

    数据_取原始数据,数据_生成XML文本,私用_生成XML数据,数据_导入,数据_释放,私有_验证节点ID合法性,节点_用ID取出,节点_删除,私有_标记为已删除节点,节点_修改,节点_插入,节点_用路径取出,私有_分析路径,节点_取实际...

    xmltree.rar

    xml的一个仿Windows的树形导航。

    易语言XMLtree13模块支持CDATAUTF8可替代XML支持库

    易语言XMLtree13模块支持CDATAUTF8可替代XML支持库源码,数据_取原始数据,数据_生成XML文本,私用_生成XML数据,数据_导入,数据_释放,私有_验证节点ID合法性,节点_用ID取出,节点_删除,私有_标记为已删除节点,节点_修改,...

    易语言XMLtree模块支持CDATAUTF8XML注释自主的XML解析引擎

    易语言XMLtree模块支持CDATAUTF8XML注释自主的XML解析引擎源码,数据_取出,数据_导入,数据_释放,节点_取出,节点_删除,节点_替换,节点_插入,节点_数据_取实际名称,私有_CDATA替换并编号,私有_解析XML数据,私有_删空白...

    网页xmltree列表

    网页xmltree列表,很强大的一个树列表代码

    XmlTree 树形控件到XML的操作

    vc6写的 微软写的树形控件到XML的操作 及在树形控件上操作结点,再保存 vc6源代码

    无刷新树XMLtree源码

    给JAVA民工一点帮助

    xmltree-rs:将XML文件读入简单的树结构

    xmltree-rs:将XML文件读入简单的树结构

    vc++ xmltree

    vc解析xml文件添加到TreeCtrl,添加,删除,修改,比较完整的例子

    XmlTree.zip

    基于camx 快速高效编辑xml文件,快速修改文件,插入,删除,添加以及修改,可视化编辑界面,使编辑xml文件更简单快捷

    vc 对XML的操作

    // xmltree.h : main header file for the XMLTREE application // #if !defined(AFX_XMLTREE_H__F3C8BBA5_DA60_11D2_866B_00A0CC23C8EA__INCLUDED_) #define AFX_XMLTREE_H__F3C8BBA5_DA60_11D2_866B_00A0CC23C8EA...

    Android 校验apk文件渠道号、包名、版本号

    功能:可查看单个或目录下所有apk文件的渠道号、包名、版本号 使用:以查看包名、...echo `/android-sdk-linux/build-tools/23.0.1/aapt d xmltree "$f" AndroidManifest.xml |grep -E -n -i "android:value" ` done

Global site tag (gtag.js) - Google Analytics