一个深度嵌套的xml树,如何实现递归遍历。mashall和unmashall只能实现结构化的xml,token()语句只能单向前进。有没有更好的方案?在遍历的时候需要针对节点的位置加入新的属性来标记节点的属性,比如末端节点,高度,宽度,深度,排行等等。
<?DOCTYPE xml version="1.0" encoding="utf-8"?>
<R content="a">
<a.a content="a.a">
<a.a.a content="a.a.a">
<a.a.a.a content="a.a.a.a">
<a.a.a.a.a content="a.a.a.a.a"></a.a.a.a.a>
</a.a.a.a>
<a.a.a.b content="a.a.a.b">
</a.a.a.b>
</a.a.a>
<a.a.b content="a.a.b">
<a.a.b.a content="a.a.b.a"></a.a.b.a>
<a.a.b.b content="a.a.b.b"></a.a.b.b>
<a.a.b.c content="a.a.b.c"></a.a.b.c>
</a.a.b>
<a.a.c content="a.a.c"></a.a.c>
<a.a.d content="a.a.d"></a.a.d>
</a.a>
<a.b content="a.b">
<a.b.a content="a.b.a">
<a.b.a.a></a.b.a.a>
</a.b.a>
<a.b.b content="a.b.b"></a.b.b>
<a.b.c content="a.b.c"></a.b.c>
<a.b.d content="a.b.d"></a.b.d>
</a.b>
<a.c content="a.c">
<a.c.a content="a.c.a"></a.c.a>
<a.c.b content="a.c.b"></a.c.b>
<a.c.c content="a.c.d"></a.c.c>
</a.c>
<a.d content="a.d"></a.d>
<a.e content="a.e"></a.e>
<a.f content="a.f"></a.f>
</R>