Minimal DOM(minidom)无法为根元素设置属性的技术求助
解决minidom中无法为根元素设置属性的问题
嘿,你遇到的这个AttributeError问题其实很好解决——你搞混了XML文档对象和XML元素节点的区别!
你代码里的root是minidom.Document的实例,它代表整个XML文档的容器,本身并不是一个XML元素,自然没有setAttribute方法。你要设置属性的应该是你创建的<dbtable>元素,而不是文档对象本身。
下面是修正后的代码:
# -*- coding: utf-8 -*- from xml.dom import minidom import os # 创建XML文档对象 root = minidom.Document() # 创建dbtable元素,这才是我们要作为根的XML元素节点 xml = root.createElement('dbtable') # 给dbtable元素设置属性(这一步才是正确的操作对象) xml.setAttribute("name", 'states') # 将dbtable元素添加为文档的根节点 root.appendChild(xml) # 可选:输出格式化后的XML内容 print(root.toprettyxml(indent=" "))
再给你划几个关键要点:
minidom.Document的作用是管理整个XML文档的结构、创建元素等,但它不是XML元素,不能设置属性。- 你用
createElement创建的xml变量才是真正的XML元素节点,所有属性操作都应该针对它来做。 - 最后把这个元素添加到文档中,它就会成为XML的根元素,带着你设置的属性。
内容的提问来源于stack exchange,提问作者Scott Bing
相关产品推荐
相关产品推荐

