Java 使用jsp将递归结构转换为xml

Java 使用jsp将递归结构转换为xml,java,xml,jsp,recursion,Java,Xml,Jsp,Recursion,假设我有一个递归数据结构 class Tree { private Tree right; private Tree left; private int data; .... } 我想用jsp将其转换为xml,这样我的ui树小部件就可以用Ajax加载xml页面并构建一个树(带有可扩展/可折叠的节点等) xml的外观如下所示: <tree> <tree> <data value="5"/>

假设我有一个递归数据结构

 class Tree {
      private Tree right;
      private Tree left;
      private int data;
      ....
 }
我想用jsp将其转换为xml,这样我的ui树小部件就可以用Ajax加载xml页面并构建一个树(带有可扩展/可折叠的节点等)

xml的外观如下所示:

<tree>
   <tree>
      <data value="5"/>
   </tree
   <tree>
      <data value="1"/>
      <tree>
          <data value="5"/>
      </tree
      <tree>
          <data value="1"/>
      </tree>
   </tree>
</tree>

试试这个:

class Tree {
     Tree right;
     Tree left;
     int data;

     public String toXmlString(){
        StringBuilder s = new StringBuilder();
        s.append("<tree>");
        s.append("<data value=\"" + data + "\" />");
        if(right != null)
            s.append(right.toXmlString());
        if(left != null)
            s.append(left.toXmlString());
        s.append("</tree>");

        return s.toString();
     }
 }
试试这个:

class Tree {
     Tree right;
     Tree left;
     int data;

     public String toXmlString(){
        StringBuilder s = new StringBuilder();
        s.append("<tree>");
        s.append("<data value=\"" + data + "\" />");
        if(right != null)
            s.append(right.toXmlString());
        if(left != null)
            s.append(left.toXmlString());
        s.append("</tree>");

        return s.toString();
     }
 }

从技术上讲,我相信这是可以做到的-可能有一个自定义标签。但是JSP不适合递归算法


使用一个servlet和您选择的XML API(可能是一个类)。

从技术上讲,我相信这是可以做到的——可能需要一个自定义标记。但是JSP不适合递归算法


使用servlet和您选择的XML API(可能是类)。

虽然我欣赏StringBuilder方法,但我还是建议XML新手使用java API。使用StringBuilder速度更快,但也容易出错。即使你知道你在做什么,你也应该考虑使用JavaBu建TIN XML支持,这样你就不会陷入编码陷阱。

< P>尽管我很欣赏StrugBuudor方法,我还是建议使用java API来实现XML新手。使用StringBuilder速度更快,但也容易出错。即使你知道你在做什么,你也应该考虑使用JavaBuestin XML支持,这样你就不会陷入编码陷阱。

< P>我讨厌回答和接受我自己的问题,但是在回顾其他问题之后,看起来答案应该是:


“不能合理地用JSP完成”。

我不愿意回答并接受我自己的问题,但在回顾其他问题后,答案似乎应该是:


“无法合理地使用JSP完成”。

为什么要在JSP中执行此操作?这就是servlet的用途。我不想在JSP中这样做,但我们同意,某种形式的模板将很好,因为我不想自己连接字符串(arghh…),为什么要在JSP中这样做?这就是Servlet的用途。我不想在JSP中使用它,但我们同意,某种形式的模板将很好,因为我不打算自己连接字符串(arghhh…),就这么简单。我建议引进一套全新的图书馆是个坏主意+严格地说,这是Java,不是JSP。@Stephen:事实上,我们一开始就完全拒绝了这个想法。:)就这么简单。我建议引进一套全新的图书馆是个坏主意+严格地说,这是Java,不是JSP。@Stephen:事实上,我们一开始就完全拒绝了这个想法。:)