- class QDomElement#
该
QDomElement
类代表 DOM 树中的一个元素。 更多…摘要#
方法#
def
__init__()
def
attribute()
def
attributeNS()
def
attributeNode()
定义
setTagName()
定义
tagName()
定义
text()
注意
此文档可能包含从C++自动翻译到Python的代码段。我们始终欢迎对片段翻译的贡献。如果您发现翻译问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建票据的方式来告诉我们。
详细描述#
警告
本节包含从C++自动翻译到Python的代码段,可能包含错误。
元素具有一个
tagName()
和与之关联的零个或多个属性。可以使用setTagName()
来更改标签名称。元素的属性由
QDomAttr
对象表示,可以使用attribute()
和attributeNode()
函数进行查询。可以使用setAttribute()
和setAttributeNode()
函数设置属性。属性可使用removeAttribute()
删除。这些函数都有支持命名空间的等价函数,例如setAttributeNS()
,setAttributeNodeNS()
和removeAttributeNS()
。如果您想访问节点的文本,请使用
text()
,例如。e = //... #... s = e.text()
text()
函数会递归地查找文本(因为不是所有元素都包含文本)。如果您想找到节点所有子节点中的所有文本,可以遍历子节点寻找QDomText
节点,例如。text = QString() element = doc.documentElement() for(QDomNode n = element.firstChild(); not n.isNull(); n = n.nextSibling()) t = n.toText() if not t.isNull(): text += t.data()
请注意,我们尝试将每个节点转换为文本节点,并使用
text()
而不是使用firstChild()
或toText()
. 将data()
或 n.toText()
.data() 直接应用于节点,因为节点可能不是文本元素。您可以使用
elementsByTagName()
或elementsByTagNameNS()
获取元素所有具有指定标签名的子代列表。要浏览DOM文档的元素,请使用
firstChildElement()
、lastChildElement()
、nextSiblingElement()
和previousSiblingElement()
。例如,要遍历根元素“database”中所有名为“entry”的子元素,可以使用doc = // ... root = doc.firstChildElement("database") elt = root.firstChildElement("entry") for (; not elt.isNull(); elt = elt.nextSiblingElement("entry")) { # ...
关于文档对象模型(DOM)的更多信息,请参阅第1级和第2级核心。有关DOM实现的更一般介绍,请参阅
QDomDocument
文档。- __init__(x)#
- 参数:
x –
QDomElement
构建
x
的副本。复制品的数据是共享的(浅拷贝):修改一个节点将也会改变另一个。如果要进行深拷贝,请使用
cloneNode()
。- __init__()
构建一个空元素。使用
createElement()
函数构建包含内容的项目。- attribute(name[, defValue=""])#
- 参数:
name – str
defValue – str
- 返回类型:
字符串
返回名为
name
的属性。如果属性不存在,则返回defValue
。- attributeNS(nsURI, localName[, defValue=""])#
- 参数:
nsURI – 字符串
localName – 字符串
defValue – str
- 返回类型:
字符串
返回具有局部名称
localName
和命名空间 URInsURI
的属性。如果属性不存在,则返回defValue
。返回对应于名为
name
的属性的QDomAttr
对象。如果不存在此类属性,则返回一个null attribute
。返回对应于具有局部名称
localName
和命名空间 URInsURI
的属性的QDomAttr
对象。如果不存在此类属性,则返回一个null attribute
。- elementsByTagName(tagname)#
- 参数:
tagname – 字符串
- 返回类型:
返回一个包含该元素所有子元素的
QDomNodeList
,这些子元素的标签名称为tagname
,在以该元素为根的前序遍历元素子树时遇到。返回列表中元素的顺序是前序遍历中遇到的顺序。另请参阅:
elementsByTagNameNS
elementsByTagName
- elementsByTagNameNS(nsURI, localName)#
- 参数:
nsURI – 字符串
localName – 字符串
- 返回类型:
返回一个包含该元素所有子元素的
QDomNodeList
,这些子元素的本地名称为localName
,命名空间URI为nsURI
,在以该元素为根的前序遍历元素子树时遇到。返回列表中元素的顺序是前序遍历中遇到的顺序。另请参阅:
elementsByTagName
elementsByTagNameNS
- hasAttribute(name)#
- 参数:
name – str
- 返回类型:
布尔值
如果该元素有一个名为
name
的属性,则返回true
;否则返回false
。注意
此函数不关心命名空间的引入。因此,将指定名称与可能存在的任何命名空间前缀一起包括的完全限定属性名称进行测试。
要显式检查具有特定命名空间和名称的属性,请使用
hasAttributeNS
。- hasAttributeNS(nsURI, localName)#
- 参数:
nsURI – 字符串
localName – 字符串
- 返回类型:
布尔值
如果该元素具有局部名称为
localName
且命名空间URI为nsURI
的属性,则返回true
;否则返回false
。- removeAttribute(name)#
- 参数:
name – str
从该元素中删除名为
name
的属性。- removeAttributeNS(nsURI, localName)#
- 参数:
nsURI – 字符串
localName – 字符串
从该元素中删除具有本地名称
localName
和命名空间 URInsURI
的属性。从元素中删除属性
oldAttr
并返回它。- setAttribute(name, value)#
- 参数:
name – str
value - str
添加一个名为
name
的属性,其值为value
。如果存在同名属性,则将其值替换为value
。- setAttribute(name, value)
- 参数:
name – str
value - int
这是一个重载函数。
格式化始终使用 QLocale::C。
- setAttribute(name, value)
- 参数:
name – str
value - float
这是一个重载函数。
格式化始终使用 QLocale::C。
- setAttributeNS(nsURI, qName, value)#
- 参数:
nsURI – 字符串
qName - str
value - str
添加具有合格名称
qName
和命名空间 URInsURI
的属性,并使用值value
。如果已存在具有相同局部名称和命名空间 URI 的属性,则其前缀将被qName
的前缀替换,其值将被value
替换。尽管
qName
是合格名称,但使用局部名称来决定应替换现有属性值的值。- setAttributeNS(nsURI, qName, value)
- 参数:
nsURI – 字符串
qName - str
value - float
这是一个重载函数。
- setAttributeNS(nsURI, qName, value)
- 参数:
nsURI – 字符串
qName - str
value - int
这是一个重载函数。
- setAttributeNS(nsURI, qName, value)
- 参数:
nsURI – 字符串
qName - str
value - int
这是一个重载函数。
- setAttributeNS(nsURI, qName, value)
- 参数:
nsURI – 字符串
qName - str
value - int
这是一个重载函数。
- setAttributeNS(nsURI, qName, value)
- 参数:
nsURI – 字符串
qName - str
value - int
这是一个重载函数。
将属性
newAttr
添加到该元素。如果该元素有另一个与
newAttr
具有相同名称的属性,则此函数将替换该属性并返回它;否则,该函数返回一个null attribute
。将属性
newAttr
添加到该元素。如果该元素有另一个与
newAttr
具有相同局部名称和命名空间 URI 的属性,则此函数将替换该属性并返回它;否则,该函数返回一个null attribute
。- setTagName(name)#
- 参数:
name – str
将此元素的标签名称设置为
name
。另请参阅:
- tagName()#
- 返回类型:
字符串
警告
本节包含从C++自动翻译到Python的代码段,可能包含错误。
返回此元素的标签名称。对于一个如下的XML元素:
<img src="myimg.png">
则返回的标签名称会是“img”。
另请参阅:
- text()#
- 返回类型:
字符串
警告
本节包含从C++自动翻译到Python的代码段,可能包含错误。
返回元素的文本或空字符串。
示例
<h1>Hello <b>Qt</b> <not [CDATA[<xml is cool>]]></h1>
QDomElement
对于<h1>
标签的 text() 函数将返回以下文本Hello Qt <xml is cool>
该函数忽略注释。它只评估
QDomText
和QDomCDATASection
对象。