实现具有带有级别编号的有序列表的xml层次结构

时间:2010-12-20 08:37:29

标签: java xml

我有一个数字列表,表示xml树中的级别。 例如,我有以下列表:

 0, 1, 2, 2, 1

和xml(带'lev'元素)需要是:

<lev>
  <lev>     
    <lev>
    </lev> 
    <lev>
    </lev>  
  </lev>
  <lev>
  </lev>
</lev>

如何只使用该列表构建此xml? 我需要一个递归方法,实际上我需要这个用于xsl文件,但是它也可以作为Java代码使用 - 解析该列表。

我不确定这是否可行,只有那个清单。 任何帮助都会很棒! 感谢。

稍后编辑:

对于上面的列表,我们也说我们也介绍了这个位置:

Level     Position
   0        0
   1        1
   2        2
   2        3
   1        4  

如果我们在列表中有一个数字(级别)x,在它之后我们有一个数字(级别)y,其中y <= x我们在那一点知道最后一个元素(x,x-创建xml时需要关闭1,...,y)。

例:

  • 当我们处于第3位(第2级)时,我们知道第2位的元素(也是第2级)需要关闭

  • 当我们处于第4位(第1级)时,我们知道位置-s 3(第2级)和第1级(第1级)的元素需要关闭

1 个答案:

答案 0 :(得分:0)

递归对此来说太过分了。此外,不需要“位置”值。这是一个伪代码解决方案

假设函数next()返回下一个输入值,或者为EOF返回零。

curLevel = 0
n        = next();
do 
{
  while(curLevel <= n)
  {
    open tag
    ++curLevel
  }
  n = next();
  while(curLevel > n)
  {
    --curLevel
    close tag
  }
}
while(curLevel > 0)

请注意,空输入文件的边角区将产生一对打开/关闭对。以不同的方式检查EOF并修改代码以便在不需要时处理它。