• xml转dict


    xmldict

    最开始的时候一直是按格式比较严谨的XML格式进行的转换,所以一般只需要考虑两种情况就可以了,即各个节点或者子节点全相同或者全不同,全相同按list处理,全不同按dict处理,这么一想就比较清晰了,类似这样的格式。

     

    格式很规整,然后对这种xml进行解析,先获取根节点,按根节点进行遍历,查看其是否有子节点,若无子节点则直接将text付给它,有子节点的检查其数量,如果是一个,或者子节点名不同,直接递归按原函数转dict的逻辑处理,否则认为它是一个list,需要转到xmltolist,遍历list,检查子元素,逻辑和上面基本相同,但是结果要appendlist,如上分析代码如下:

     

    这样可以做到规整的xml文件的转换,但是突然想到,要是它不规整怎么办,比如子节点里既有相同名字的节点,又有不同名字的节点,甚至顺序都不连续怎么办,比如这样的节点:

     

    按上面的代码是没法处理的,后面的相同节点会把前面的覆盖掉,这样就很恶心了,想了半天没想到太好的办法了,只能先计算同名节点的数量,并为每个存在同名的节点创建一个list等待它来添加了,虽然这么写感觉很low,感觉在堆逻辑,但是确实没想到什么好办法,凑合先这样吧,实现如下:

     

  • 相关阅读:
    IOI2000 回文字串
    洛谷 P2758 编辑距离
    NOIP2012普及第三题 摆花
    [SCOI2005]骑士精神
    [USACO1.5]八皇后 Checker Challenge
    Codeforces Round #637 (Div. 2) 题解
    核电站---两种DP解法
    POJ1077 八数码问题
    洛谷 P1162 填涂颜色
    jQuery火箭图标返回顶部代码
  • 原文地址:https://www.cnblogs.com/small-office/p/9337943.html
Copyright © 2020-2023  润新知