qq_34375847
梦醒人
2018-12-16 23:07

go 如何遍历深度嵌套xml树

5
  • Golang

一个深度嵌套的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>
  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

3条回答

为你推荐

换一换