使用xml.min.dom,有个观念要和之前的不一样,
<tag> abc </tag>
两个标签之前的值abc也是一个节点(TEXT_NODE),然后这个TEXT_NODE的data 存放实际的数据。可以通过给这个data赋值直接改变节点的内容。
例子:
def setTagValue(self, tag, value):
'''
设置标签值, <a>value</a>, 改变的是value
'''
if not tag:
return
if tag.childNodes:
child = tag.childNodes[0]
if child.nodeType == 3:
child.data = str(value)
else:
# 没有子结点,要新建一个
newChild = self.dom.createTextNode(str(value))
print('newChild-----', newChild)
tag.appendChild( newChild )
但该节点暴露 出来的接口,没有这个data。还不知道隐藏起来的。
['ATTRIBUTE_NODE',
'CDATA_SECTION_NODE',
'COMMENT_NODE',
'DOCUMENT_FRAGMENT_NODE',
'DOCUMENT_NODE',
'DOCUMENT_TYPE_NODE',
'ELEMENT_NODE',
'ENTITY_NODE',
'ENTITY_REFERENCE_NODE',
'NOTATION_NODE',
'PROCESSING_INSTRUCTION_NODE',
'TEXT_NODE',
'__bool__',
'__class__',
'__delattr__',
'__dict__',
'__dir__',
'__doc__',
'__enter__',
'__eq__',
'__exit__',
'__format__',
'__ge__',
'__getattribute__',
'__gt__',
'__hash__',
'__init__',
'__init_subclass__',
'__le__',
'__lt__',
'__module__',
'__ne__',
'__new__',
'__reduce__',
'__reduce_ex__',
'__repr__',
'__setattr__',
'__sizeof__',
'__slots__',
'__str__',
'__subclasshook__',
'__weakref__',
'_attrs',
'_attrsNS',
'_call_user_data_handler',
'_child_node_types',
'_ensure_attributes',
'_get_attributes',
'_get_childNodes',
'_get_firstChild',
'_get_lastChild',
'_get_localName',
'_get_tagName',
'_localName',
'_magic_id_nodes',
'appendChild',
'attributes',
'childNodes',
'cloneNode',
'firstChild',
'getAttribute',
'getAttributeNS',
'getAttributeNode',
'getAttributeNodeNS',
'getElementsByTagName',
'getElementsByTagNameNS',
'getInterface',
'getUserData',
'hasAttribute',
'hasAttributeNS',
'hasAttributes',
'hasChildNodes',
'insertBefore',
'isSameNode',
'isSupported',
'lastChild',
'localName',
'namespaceURI',
'nextSibling',
'nodeName',
'nodeType',
'nodeValue',
'normalize',
'ownerDocument',
'parentNode',
'prefix',
'previousSibling',
'removeAttribute',
'removeAttributeNS',
'removeAttributeNode',
'removeAttributeNodeNS',
'removeChild',
'replaceChild',
'schemaType',
'setAttribute',
'setAttributeNS',
'setAttributeNode',
'setAttributeNodeNS',
'setIdAttribute',
'setIdAttributeNS',
'setIdAttributeNode',
'setUserData',
'tagName',
'toprettyxml',
'toxml',
'unlink',
'writexml']
具体使用可以参考:
https://zhuanlan.zhihu.com/p/100136477