跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 写了个把 xml 的 tag 解析目录树的小脚本, 各位大佬提点意见
未分類
15 1 月 2021

写了个把 xml 的 tag 解析目录树的小脚本, 各位大佬提点意见

写了个把 xml 的 tag 解析目录树的小脚本, 各位大佬提点意见

資深大佬 : xchaoinfo 4

求问, 各位大佬有没有更好的实现方式

 """解析 xml 的结构为目录树,能够快速的对 xml 的结构有基本的了解。这也是 nonlocal 新关键字的一个 demo """ from io import BytesIO  from lxml import etree   def init_xpath(page_source: str):     """page_source 的 xml 文本转为可以解析的 etree 对象     """     xml_root = etree.parse(BytesIO(page_source.encode()))     return xml_root   def fmt(fg):     """格式化输出"""     print("-" * fg, end="")   def tree_xml(root, result, flags=0, step=2):     result.append((flags, root))      def tree(root):         nonlocal flags         ch_root = root.getchildren()         if ch_root:             flags += step             for ch in ch_root:                 tree_xml(ch, result, flags)         else:             pass     tree(root)     return result   def main():     data = """     <xml>         <aa>             <bb></bb>             <cc>                 <a11></a11>                 <a22>                     <mue></mue>                 </a22>             </cc>             <dd></dd>         </aa>         <ee>             <ff></ff>         </ee>     </xml>     """     xml_root = init_xpath(data)     res_xml = tree_xml(xml_root.getroot(), [])     for fg, _root in res_xml:         fmt(fg)         print(_root.tag)   if __name__ == '__main__':     main() 

执行结果是这样的

xml --aa ----bb ----cc ------a11 ------a22 --------mue ----dd --ee ----ff  

大佬有話說 (2)

  • 資深大佬 : jalena

    根据我这么些年的开发经验,是否有一个 getElement method ??

  • 主 資深大佬 : xchaoinfo

    @jalena 并不是单纯的获取所有的 Elements, 还要层级结构,便于格式化的输出

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具