go 如何遍历深度嵌套xml树

一个深度嵌套的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>

您好,请您查看这份资料:https://blog.csdn.net/varding/article/details/45537021

如果解决了您的问题,请点击采纳,如果并没有,请在下方回复,我会继续帮您解答。

参考链接:https://blog.csdn.net/weixin_38496860/article/details/83377875

如果解决了您的问题,请点击采纳

https://blog.csdn.net/boyhandsome7/article/details/79734847