提取QDomElement中的整个标签数据

问题描述 投票:0回答:1

我正在使用QtXml处理某些svg文件,我想做的是,当我在文档中找到特定的QDomElement时,我想尝试将整个xml元素数据(及其所有子元素)保存到一个QString不仅是它们的属性或标记之间的文本。

想象这个标签:(g标签)

<g fill="#000000" fill-opacity="0" stroke="#000000" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(1,0,0,1,0,0)"
font-family="MS Shell Dlg 2" font-size="8.25" font-weight="400" font-style="normal" 
>
<rect x="25" y="50" width="50" height="25"/>
<text x="50" y="26" font-size="24" stroke-width="2px" text-anchor="middle">Screen</text>
</g>

我已经可以做的是使用以下代码提取属性,例如xywidthheight以及标记之间的文本:

    int x = gzElement.attribute("x").toInt(); // x=25
    int y = gzElement.attribute("y").toInt(); // y=50
    QString sampleText = gzElement.text(); // sampleText = Screen

但是我无法做并尝试到达它们是获取所有g标记及其子元素,如下所示:

//dummy code
QString tagData = gzElement.wholeData(); /* tagData =

"<g fill="#000000" fill-opacity="0" stroke="#000000" stroke-opacity="1" stroke-width="1" stroke-linecap="square" stroke-linejoin="bevel" transform="matrix(1,0,0,1,0,0)"
font-family="MS Shell Dlg 2" font-size="8.25" font-weight="400" font-style="normal" 
>
<rect x="25" y="50" width="50" height="25"/>
<text x="50" y="26" font-size="24" stroke-width="2px" text-anchor="middle">Screen</text>
</g>" */

有人知道Qt库或其他替代方法中的API函数吗?或者我必须使用纯QString和QRegExp类来实现它来手动遍历svg(xml)文件]

xml qt svg tags qtxml
1个回答
0
投票

确定,我得到了自己的答案,如果其他人遇到这种类型的问题,我也将其留在这里。您可以使用QDom中描述的此功能,使用QDomNode :: operator <https://doc.qt.io/archives/qt-4.8/qdomnode.html#operator-lt-lt-205

© www.soinside.com 2019 - 2024. All rights reserved.