class QDomElement#

QDomElement 类代表 DOM 树中的一个元素。 更多

Inheritance diagram of PySide6.QtXml.QDomElement

摘要#

方法#

注意

此文档可能包含从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)#
参数:

xQDomElement

构建x的副本。

复制品的数据是共享的(浅拷贝):修改一个节点将也会改变另一个。如果要进行深拷贝,请使用cloneNode()

__init__()

构建一个空元素。使用createElement()函数构建包含内容的项目。

attribute(name[, defValue=""])#
参数:
  • name – str

  • defValue – str

返回类型:

字符串

返回名为name的属性。如果属性不存在,则返回defValue

attributeNS(nsURI, localName[, defValue=""])#
参数:
  • nsURI – 字符串

  • localName – 字符串

  • defValue – str

返回类型:

字符串

返回具有局部名称 localName 和命名空间 URI nsURI 的属性。如果属性不存在,则返回 defValue

attributeNode(name)#
参数:

name – str

返回类型:

QDomAttr

返回对应于名为 name 的属性的 QDomAttr 对象。如果不存在此类属性,则返回一个 null attribute

attributeNodeNS(nsURI, localName)#
参数:
  • nsURI – 字符串

  • localName – 字符串

返回类型:

QDomAttr

返回对应于具有局部名称 localName 和命名空间 URI nsURI 的属性的 QDomAttr 对象。如果不存在此类属性,则返回一个 null attribute

elementsByTagName(tagname)#
参数:

tagname – 字符串

返回类型:

QDomNodeList

返回一个包含该元素所有子元素的QDomNodeList,这些子元素的标签名称为tagname,在以该元素为根的前序遍历元素子树时遇到。返回列表中元素的顺序是前序遍历中遇到的顺序。

另请参阅:

elementsByTagNameNS elementsByTagName

elementsByTagNameNS(nsURI, localName)#
参数:
  • nsURI – 字符串

  • localName – 字符串

返回类型:

QDomNodeList

返回一个包含该元素所有子元素的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 和命名空间 URI nsURI 的属性。

removeAttributeNode(oldAttr)#
参数:

oldAttr - QDomAttr

返回类型:

QDomAttr

从元素中删除属性 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 和命名空间 URI nsURI 的属性,并使用值 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

这是一个重载函数。

setAttributeNode(newAttr)#
参数:

newAttrQDomAttr

返回类型:

QDomAttr

将属性 newAttr 添加到该元素。

如果该元素有另一个与 newAttr 具有相同名称的属性,则此函数将替换该属性并返回它;否则,该函数返回一个 null attribute

setAttributeNodeNS(newAttr)#
参数:

newAttrQDomAttr

返回类型:

QDomAttr

将属性 newAttr 添加到该元素。

如果该元素有另一个与 newAttr 具有相同局部名称和命名空间 URI 的属性,则此函数将替换该属性并返回它;否则,该函数返回一个 null attribute

setTagName(name)#
参数:

name – str

将此元素的标签名称设置为 name

另请参阅:

tagName()

tagName()#
返回类型:

字符串

警告

本节包含从C++自动翻译到Python的代码段,可能包含错误。

返回此元素的标签名称。对于一个如下的XML元素:

<img src="myimg.png">

则返回的标签名称会是“img”。

另请参阅:

setTagName()

text()#
返回类型:

字符串

警告

本节包含从C++自动翻译到Python的代码段,可能包含错误。

返回元素的文本或空字符串。

示例

<h1>Hello <b>Qt</b> <not [CDATA[<xml is cool>]]></h1>

QDomElement 对于 <h1> 标签的 text() 函数将返回以下文本

Hello Qt <xml is cool>

该函数忽略注释。它只评估 QDomTextQDomCDATASection 对象。