我正在读取一个 XML 文件并重新创建结构以重新打印减去所有属性、值和文本。据我所知,它工作正常,但是当我尝试在控制台中重新打印它时,我得到了非常奇怪的行为。
for( xmlNode n : treeNodes )
{
System.out.println( n.getLabel() );
printChildNodes( n, 1 );
}
private static void printChildNodes( xmlNode n, int indent )
{
for( int i = 0; i < indent; i++ )
{
System.out.print( indent );
}
for( xmlNode child : n.getChildren() )
{
System.out.println( child.getLabel() + " " + indent );
printChildNodes( child, indent+1 );
}
}
我得到以下输出
ROOT
1A 1
22B 2
333C 3
4444D 4
55555E 5
666666D 4
55555E 5
666666D 4
55555E 5
666666D 4
最初我打印的是“\t”而不是缩进,但我注意到结构看起来不对。现在我正在摸索机器中可能存在的鬼影导致我的“缩进”变量具有两个单独的值,而没有对其进行任何更改。更不用说这些怪事在某种程度上是可以预测的。D 元素应该在 E 的左侧而不是右侧(因为它们是 E 的父级)。
有任何想法吗?