QDomElement::text() 没有子元素文本?
QDomElement::text() without child element texts?
我有一个 xml 像:
<a>
<b>1</b>
<c>2</c>
<d>3</d>
</a>
和一个解析 QDomDocument
包装它的递归函数。该函数迭代QDomNode
s,将它们转换为QDomElement
s并调用text()
方法获取数据。
不幸的是 QDomElement::text()
也在 <a>
级别工作并且 returns: 123
。所以它收集了所有嵌套元素的文本。
我希望它成为一个空字符串 bcs return,我宁愿不检查 tagName()
值,因为它们可能很多。所以我宁愿通过 haveng/not 来检查节点标签,里面有文本,而不是相反。这可行吗?有没有一种方法可以 return <a>
的空字符串和 <b>, <c>, <d>
级别的文本值?
P.S。 QDomNode::nodeValue()
return所有元素的空文本。
看来我错了,因为我没有迭代无法转换为 QDomElement
的 QDomNode
。并根据 :
This is required by the DOM specification:
The Text interface represents the textual content (termed character data in XML) of an Element or Attr. If there is no markup
inside an element's content, the text is contained in a single object
implementing the Text interface that is the only child of the element.
If there is markup, it is parsed into a list of elements and Text
nodes that form the list of children of the element.
我在 <b>
类元素中没有标记。所以在 <b>
元素的级别,我有 el.childNodes().size() == 1
、el.firstChild().isElement() == false
和 el.firstChild().nodeValue()
returns 一个非空值!
我有一个 xml 像:
<a>
<b>1</b>
<c>2</c>
<d>3</d>
</a>
和一个解析 QDomDocument
包装它的递归函数。该函数迭代QDomNode
s,将它们转换为QDomElement
s并调用text()
方法获取数据。
不幸的是 QDomElement::text()
也在 <a>
级别工作并且 returns: 123
。所以它收集了所有嵌套元素的文本。
我希望它成为一个空字符串 bcs return,我宁愿不检查 tagName()
值,因为它们可能很多。所以我宁愿通过 haveng/not 来检查节点标签,里面有文本,而不是相反。这可行吗?有没有一种方法可以 return <a>
的空字符串和 <b>, <c>, <d>
级别的文本值?
P.S。 QDomNode::nodeValue()
return所有元素的空文本。
看来我错了,因为我没有迭代无法转换为 QDomElement
的 QDomNode
。并根据
This is required by the DOM specification:
The Text interface represents the textual content (termed character data in XML) of an Element or Attr. If there is no markup inside an element's content, the text is contained in a single object implementing the Text interface that is the only child of the element. If there is markup, it is parsed into a list of elements and Text nodes that form the list of children of the element.
我在 <b>
类元素中没有标记。所以在 <b>
元素的级别,我有 el.childNodes().size() == 1
、el.firstChild().isElement() == false
和 el.firstChild().nodeValue()
returns 一个非空值!