PySide6.QtXml.QDomElement

class QDomElement

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

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")) {
    # ...

有关文档对象模型的更多信息,请参阅Level 1Level 2 Core。有关DOM实现的更一般介绍,请参阅QDomDocument文档。

__init__()

构造一个空元素。使用createElement()函数来构造带有内容的元素。

__init__(element)
Parameters:

元素QDomElement

构造element的副本。

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

attribute(name[, defValue=""])
Parameters:
  • name – str

  • defValue – str

Return type:

字符串

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

attributeNS(nsURI, localName[, defValue=""])
Parameters:
  • nsURI – str

  • localName – str

  • defValue – str

Return type:

字符串

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

attributeNode(name)
Parameters:

name – str

Return type:

QDomAttr

返回与名为name的属性对应的QDomAttr对象。如果不存在这样的属性,则返回null attribute

attributeNodeNS(nsURI, localName)
Parameters:
  • nsURI – str

  • localName – str

Return type:

QDomAttr

返回与本地名称localName和命名空间URInsURI对应的QDomAttr对象。如果不存在这样的属性,则返回null attribute

elementsByTagName(tagname)
Parameters:

tagname – str

Return type:

QDomNodeList

返回一个QDomNodeList,其中包含在以该元素为根的子树的前序遍历中遇到的所有名为tagname的后代元素。返回列表中的元素顺序是它们在前序遍历中遇到的顺序。

elementsByTagNameNS(nsURI, localName)
Parameters:
  • nsURI – str

  • localName – str

Return type:

QDomNodeList

返回一个QDomNodeList,包含在以该元素为根的子树的前序遍历中遇到的所有具有本地名称localName和命名空间URInsURI的后代元素。返回列表中的元素顺序是它们在前序遍历中遇到的顺序。

hasAttribute(name)
Parameters:

name – str

Return type:

布尔

如果此元素具有名为 name 的属性,则返回 true;否则返回 false

注意

此函数不考虑命名空间的存在。因此,指定的名称将与包含可能存在的任何命名空间前缀的完全限定属性名称进行测试。

使用 hasAttributeNS() 来显式测试具有特定命名空间和名称的属性。

hasAttributeNS(nsURI, localName)
Parameters:
  • nsURI – str

  • localName – str

Return type:

布尔

如果此元素具有本地名称为 localName 且命名空间 URI 为 nsURI 的属性,则返回 true;否则返回 false。

removeAttribute(name)
Parameters:

name – str

从该元素中移除名为 name 的属性。

removeAttributeNS(nsURI, localName)
Parameters:
  • nsURI – str

  • localName – str

从此元素中移除具有本地名称 localName 和命名空间 URI nsURI 的属性。

removeAttributeNode(oldAttr)
Parameters:

oldAttrQDomAttr

Return type:

QDomAttr

从元素中移除属性 oldAttr 并返回它。

setAttribute(name, value)
Parameters:
  • name – str

  • value – str

添加一个名为name的属性,其值为value。如果已存在同名的属性,其值将被value替换。

setAttribute(name, value)
Parameters:
  • name – str

  • value – 浮点数

这是一个重载函数。

格式化始终使用QLocale::C。

setAttribute(name, value)
Parameters:
  • name – str

  • value – int

这是一个重载函数。

格式化始终使用QLocale::C。

setAttributeNS(nsURI, qName, value)
Parameters:
  • nsURI – str

  • qName – str

  • value – str

添加一个具有限定名称qName和命名空间URInsURI的属性,其值为value。如果存在具有相同本地名称和命名空间URI的属性,则其前缀将被qName的前缀替换,其值将被value替换。

尽管qName是限定名称,但本地名称用于决定是否应替换现有属性的值。

setAttributeNS(nsURI, qName, value)
Parameters:
  • nsURI – str

  • qName – str

  • value – 浮点数

这是一个重载函数。

setAttributeNS(nsURI, qName, value)
Parameters:
  • nsURI – str

  • qName – str

  • value – int

这是一个重载函数。

setAttributeNS(nsURI, qName, value)
Parameters:
  • nsURI – str

  • qName – str

  • value – int

这是一个重载函数。

setAttributeNS(nsURI, qName, value)
Parameters:
  • nsURI – str

  • qName – str

  • value – int

这是一个重载函数。

setAttributeNS(nsURI, qName, value)
Parameters:
  • nsURI – str

  • qName – str

  • value – int

这是一个重载函数。

setAttributeNode(newAttr)
Parameters:

newAttrQDomAttr

Return type:

QDomAttr

向此元素添加属性 newAttr

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

setAttributeNodeNS(newAttr)
Parameters:

newAttrQDomAttr

Return type:

QDomAttr

向此元素添加属性 newAttr

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

setTagName(name)
Parameters:

name – str

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

另请参阅

tagName()

tagName()
Return type:

字符串

警告

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

返回此元素的标签名称。对于一个像这样的XML元素:

<img src="myimg.png">

标签名将返回“img”。

另请参阅

setTagName()

text()
Return type:

字符串

警告

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

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

示例:

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

QDomElement 的 text() 函数对于

标签,将返回以下文本:

Hello Qt <xml is cool>

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