此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【leadergg】截止到2008-07-11 09:06:51的历史汇总数据(不包括此帖):
发帖的总数量:2                        发帖的总分数:110                      每贴平均分数:55                       
回帖的总数量:8                        得分贴总数量:0                        回帖的得分率:0%                       
结贴的总数量:0                        结贴的总分数:0                        
无满意结贴数:0                        无满意结贴分:0                        
未结的帖子数:2                        未结的总分数:110                      
结贴的百分比:0.00  %               结分的百分比:0.00  %                  
无满意结贴率:---------------------无满意结分率:---------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html

解决方案 »

  1.   

    我用的是dom4j来解析XML,Element节点有个方法叫asXML()可以把节点内的东西以xml的格式显示出来。不知道你的这个dom有没有类似方法?你试试看。
      

  2.   

    建议 dom4j
    w3c的api不熟悉,实在不行,你就一个个的组装起来吧
      

  3.   

    在获取到你想要的name的节点时,把节点对象传入这个方法,看看是不是你想要的
    private static void output ( Node node )
        {
            TransformerFactory transformerFactory = TransformerFactory.newInstance();
            try{
                Transformer transformer = transformerFactory.newTransformer();
                transformer.setOutputProperty("encoding","gb2312");
                transformer.setOutputProperty("indent","yes");
                DOMSource domSource = new DOMSource();
                domSource.setNode(node);
                StreamResult result = new StreamResult();
                result.setOutputStream(System.out);//在显示屏幕输出
    //            result.setOutputStream(new FileOutputStream("Test2.xml"));//文件格式输出
                //6.转换
                transformer.transform(domSource,result);
            }catch(Exception ex)
            {        }
        }
      

  4.   

    已经解决了,用的是dom4j的asXML方法。
    谢谢seeSkyblue也谢谢上面两位。代码如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <action>
    <name>dbm.table.get_table_info</name>
    <display-name>取数据表信息</display-name>
    <enable>1</enable>
    <execute-order>0</execute-order>
    <form>dbm.table</form>

    <run if="true" else="tt">
    <if-handles>
    <handles>
    <handle name="read-data">
    <read-from type="TABLE">DBM_Table</read-from>
    <read-if></read-if>
    </handle>
    <handle name="read-data">
    <read-from type="TABLE">DBM_Table</read-from>
    <read-if></read-if>
    </handle>
    </handles>
    </if-handles>
    <else-handles>
        <handles>
    <handle name="1111">
    <read-from type="SSSS">TTTTT</read-from>
    <read-if></read-if>
    </handle>
    </handles>
    </else-handles>
    </run>
    </action>import org.dom4j.Attribute;
    import org.dom4j.Document;
    import org.dom4j.Element;
    import java.util.List;
    import java.util.Iterator;
    import java.io.*;
    import org.dom4j.DocumentException;
    import org.dom4j.io.SAXReader; public class Dom4jParse {public void gettt(Element el, String tagName) {
    // 根没有用,所以不取。直接去取子节点
    for (Iterator i = el.elementIterator(); i.hasNext();) {
    Element element = (Element) i.next();
    // 如果没有子节点,则直接读内容。
    if (element.isTextOnly()) {
    System.out.println(element.getName() + ":" + element.getText());
    } else {
    if (element.getName() == tagName) {
    int ac = element.attributeCount();
    // 输出节点属性值
    for (int j = 0; j < ac; j++) {
    System.out.println(element.attribute(j).getName()
    .toString()
    + ":"
    + element.attribute(j).getText().toString());
    }
    }
    if (element.getName() == "if-handles") {
    System.out.println(element.getName()+" |||||||||||||||||||||||||");
    }
    if (element.getName() == "else-handles") {
    System.out.println(element.getName()+" +++++++++++++++++++++++++");
    }
    // 取得handle节点并输出,否则就递归。
    if (element.getName() == "handle") {
    System.out.println(element.asXML());
    } else {
    gettt(element, "");
    }
    }
    }
    }

    public void modifyDocument(File inputXml,String tagName) {
    try {
    SAXReader saxReader = new SAXReader();
    Document document = saxReader.read(inputXml);

    Element root = document.getRootElement();
    gettt(root,tagName);
    } catch (DocumentException e) {
    System.out.println(e.getMessage());
    } catch (IOException e) {
    System.out.println(e.getMessage());
    }
    }
     public static void main(String[] argv){
     Dom4jParse dom4jParser=new Dom4jParse();
     dom4jParser.modifyDocument(new File("test.xml"),"run");
                                            }}输出结果如下:name:dbm.table.get_table_info
    display-name:鍙栨暟鎹〃淇℃伅
    enable:1
    execute-order:0
    form:dbm.table
    if:true
    else:tt
    if-handles |||||||||||||||||||||||||
    <handle name="read-data">
    <read-from type="TABLE">DBM_Table</read-from>
    <read-if/>
    </handle>
    <handle name="read-data">
    <read-from type="TABLE">DBM_Table</read-from>
    <read-if/>
    </handle>
    else-handles +++++++++++++++++++++++++
    <handle name="1111">
    <read-from type="SSSS">TTTTT</read-from>
    <read-if/>
    </handle>
    不过出现了乱码,这个应该好解决。呵呵
      

  5.   

    seeSkyblue 请到另外一个帖子上发一个回复,我好给分。