我的目标是把某一标签下的所有东西都从一个文件复制到别外一个文件中,比如说:
 <book>
    <Author>Crane20</Author>
    <ISBN>GB23132</ISBN>
    <description>A book of RubyWed Apr 01 00:25:27 +0800 2009</description>
    <id><a>20</a><a>456</a></id>
    <title>Dramatic Rubys20</title>
</book>要把<book>里面的东西全取出来,我要的是自动化的,而不是取一个标签,再照着生成。也就是说,如果以后有一个文件含<sss>标签,那么不管他们里面是什么,都能自动取出来。
    <id><a>20</a><a>456</a></id>这是专门设计的,就是说元素下还有NODE ELEMENT(<id>下有<a>),而且还不止一个,有多个(例子中有两个<a>)。
请教高手不吝赐教。

解决方案 »

  1.   

    我觉得可以递归调用
    获得根元素下的所有元素,条件判断下层element,text ,attr.进行相应的得到
    应该可以实现
      

  2.   

    不知道你是想要用什么解析,我说的是用Dom解析--递归如下
    public void display( NodeList nodes){
    int size=nodes.getLength();//获得容器的大小
    for(int i=0;i<size;i++){
    Node node=nodes.item(i);//得到容器中的一个节点
    if(node.getNodeType()==Node.ELEMENT_NODE){
    Element element=(Element)node;
    String name=node.getNodeName();
    System.out.print(name);//输出节点
    NodeList nodes1=node.getChildNodes();// 递归调用
    display(nodes1);
    }else if(node.getNodeType()==Node.TEXT_NODE){ //获得字段的值
    Text text=(Text)node;
    String info=text.getData();//获得文本结点的数据
    System.out.println(info); }

    }
    }
      

  3.   


    楼主的意思不知是把:
        <Author>Crane20 </Author> 
        <ISBN> Crane20  </ISBN> 
        <description>A book of RubyWed Apr 01 00:25:27 +0800 2009 </description> 
        <id> <a>20 </a> <a>456 </a> </id> 
        <title>Dramatic Rubys20 </title> (第一种数据格式)
    全部移动到另一个文件还是把:
    Crane20 
    Crane20 
    A book of RubyWed Apr 01 00:25:27 +0800 2009
    20 456 
    Dramatic Rubys20 (第二种数据格式)
    移动到另一个文件1、如果是第一种那么就很简单了,正则匹配得到<book></book>标签中的内容然后移动就可以了
    2、如果是第二种,并且另一个文件只是简单的存储
    Crane20 
    Crane20 
    A book of RubyWed Apr 01 00:25:27 +0800 2009
    20 456 
    这样格式的信息,那么首先正则匹配得到<book></book>标签中的内容,然后在利用正则表达式去除标签就可以了
    3、如果另一个文件是xml文件
    那么就采用dom递归解析的思想了,分别把对应的标签放到另一个xml文件内就行了
      

  4.   

    我想要的就是DOM解析,而且你的方法能递归。但是我想把一个文件中的某节点下的所以东西转移到另一个文件中去,该怎么写代码呢?
      

  5.   

    1。先创建新的Document 2.找到你要找的节点,在递归出它下面所以的内容(element,text)再appendChild(doc.creatElement());
    3.封装XML,并导出,TransformerFactory ,Transfomer.transform(source,result)基本就完成