我有一个数字列表,表示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级)的元素需要关闭
答案 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并修改代码以便在不需要时处理它。