下面这xml我转成String放在页面的textarea
<root>
<child01>
<label01>a</label01>
<label02>b</label02>
<label03>c</label03>
</child01>
<child02>
<label01>x</label01>
<label02>y</label02>
<label03>z</label03>
</child02>
</root>按下某按钮跳出另一个jsp页面并打印出
root
child01
label01:a
label02:b
label03:c
child02
label01:x
label02:y
label03:z这样的JSP该用什么方法写
请给个例子

解决方案 »

  1.   

    弄个servlet来处理xml的解析 jdom或者dom4j
    出来好的结果显示在另一个页面
      

  2.   

    我使用scriptlet并用dom方式取得了Document对象
    接下来该怎么打印节点和值?
      

  3.   

    想直接在JSP页面上打印scriptlet里的Document对象
    该怎么做呢?
      

  4.   

    你的页面如果已经取得了xml的返回数据,那就不是jsp处理的范畴,而是js脚本解析闭并展示的问题js处理dom数据是通用的方法,各个浏览器的解析代码差不多,网上一搜一大把
      

  5.   

    输出textarea中XML的事情是浏览器端JavaScript的事情,JSP帮不了你。
    下面是使用jQuery实现此功能的代码。
    <html>
    <head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    <title>Title</title><script src="js/jquery-1.4.4.min.js"></script>
    <script type="text/javascript">$(function() {
        $("#changeBtn").click(function() {
            var xml = $("#xmlArea").val();
            var $xml = $($.createXMLDocument(xml));
            treeWalk($xml.children(":eq(0)"));
        });
    });// 把text的xml转变成document
    jQuery.createXMLDocument = function(string) {
        var browserName = navigator.appName;
        var doc;
        
        if (browserName == 'Microsoft Internet Explorer') {
            doc = new ActiveXObject('Microsoft.XMLDOM');
            doc.async = 'false'
            doc.loadXML(string);
        } else {
            doc = (new DOMParser()).parseFromString(string, 'text/xml');
        }
        
        return doc;
    }// 递归的遍历DOM树
    function treeWalk($node) {
        // 如果是空节点,则返回
        if ($node.length == 0) { return; }
        
        // 如果没有子节点,则输出标签名和此节点下的字符串值
        $("#outputArea").append($node.get(0).tagName);
        if ($node.children().length == 0) {
            $("#outputArea").append(":" + $node.text() + "\n");
        } else {
            $("#outputArea").append("\n");
        }
        
        // 递归地遍历子节点
        $node.children().each(function() {
            treeWalk($(this));
        });
    }</script>
    </head><body>
        <textarea id="xmlArea" rows="20" cols="50">
            <root>
                <child01>
                    <label01>a</label01>
                    <label02>b</label02>
                    <label03>c</label03>
                </child01>
                <child02>
                    <label01>x</label01>
                    <label02>y</label02>
                    <label03>z</label03>
                </child02>
            </root>
        </textarea>
        <textarea id="outputArea" rows="20" cols="50"></textarea><br/>
        <input id="changeBtn" type="button" value="Output"/>
    </body>
    </html>