ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python xml.dom.minidom.Attr问题

2019-11-06 18:57:34  阅读:210  来源: 互联网

标签:minidom xml python


Python中使用minidom来获取属性,一种是使用“ attributes”属性.例如node.attributes [“ id”].value

因此,如果我有< a id =“ foo”>< / a&gt ;,那应该给我“ foo”. node.attributes [“ id”]不返回命名属性的值,而是xml.dom.minidom.Attr实例.
但是通过执行help(‘xml.dom.minidom.Attr’)来查看Attr的帮助,却没有提到这个神奇的“值”属性.我喜欢通过查看类型层次结构,实例方法等来学习API.“值”属性从何而来?为什么未在Attr类的页面中列出它?提到的唯一数据描述符是isId,localName和schemaType.它也不是从任何超类继承的.由于我是Python新手,因此某些Python专家会启发您吗?

解决方法:

minidom只是xml.dom接口的实现,因此任何专门针对minidom的文档都只会针对xml.dom本身的特性或局限性.

Attr上的xml.dom文档说,我引用:

Attr inherits from Node, so inherits
all its attributes.

Node上的文档实际上以不同的方式命名属性:nodeValue.但是,确实…:

>>> import xml.dom.minidom as xdm
>>> dom = xdm.parseString('<foo bar="baz"/>')
>>> root = dom.documentElement
>>> atr = root.getAttributeNode('bar')
>>> atr.nodeValue
u'baz'

记录的nodeValue属性具有_un_documented的别名值这一事实可能被认为是不幸的,但您始终可以坚持使用记录在案的属性名,即nodeValue,因此可以说是正确的.是的,它很冗长,但是所有的迷你性也是如此,并且比出色的xml.etree.ElementTree(特别是后者的C实现xml.etree.cElementTree)要慢,所以大概是因为如果您选择使用迷你性,那一定是因为您像广泛的冗长… ;-).

标签:minidom,xml,python
来源: https://codeday.me/bug/20191106/2000054.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有