Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Qt-DOM更新XML文件_Xml_Qt_Dom - Fatal编程技术网

使用Qt-DOM更新XML文件

使用Qt-DOM更新XML文件,xml,qt,dom,Xml,Qt,Dom,我有一个应用程序,它构建了一个基于树Qt组件的左菜单。为了加载它,我需要解析一个XML文件。XML文件如下所示: <comandos> <categoria> <nome>Cupom fiscal</nome> <comando> <nome>01 - Abrir Cupom Fiscal</

我有一个应用程序,它构建了一个基于树Qt组件的左菜单。为了加载它,我需要解析一个XML文件。XML文件如下所示:

<comandos>
        <categoria>
                <nome>Cupom fiscal</nome>
                <comando>
                        <nome>01 - Abrir Cupom Fiscal</nome>
                        <env>3</env>
                        <rec>4</rec>
                        <desc>CNPJ / CPF : </desc>
                        <desc>Nome : </desc>
                        <desc>Endereco: </desc>
                </comando>
        </categoria>
</comandos>
似乎使用qtdom来解析和创建XML文件是相当不错的,但它缺少更新工具。任何帮助都将不胜感激,哪怕是一个例子

这里的另一个线程看起来很有用

我在互联网上查找了更新XML文件的示例。似乎如果我捕捉到当前节点,我可以向其中添加一个子节点,但到目前为止,我还不知道如何添加

谢谢你的帮助,也很抱歉我的无知。

QDomElement newCategoriaTag = doc.createElement(QString("categoria")); 
QDomElement newNomeTag = doc.createElement(QString("nome")); 
QDomText newNomeText = doc.createTextNode(QString("Cupom fiscal 2"));
newNomeTag.appendChild(newNomeText);
newCategoriaTag.appendChild(newNomeTag);
root.appendChild(newCategoriaTag);
这将导致:

<comandos>
        <categoria>
                <nome>Cupom fiscal</nome>
                <comando>
                        <nome>01 - Abrir Cupom Fiscal</nome>
                        <env>3</env>
                        <rec>4</rec>
                        <desc>CNPJ / CPF : </desc>
                        <desc>Nome : </desc>
                        <desc>Endereco: </desc>
                </comando>
        </categoria>
        <categoria>
                <nome>Cupom fiscal 2</nome>
        </categoria>
</comandos>

库普姆财政部
01-Abrir Cupom财政部
3.
4.
CNPJ/CPF:
诺姆:
恩德雷科:
Cupom财政2

除了您提到的答案之外,您还想要什么?您好,我想更新节点。例如,用户将键入类别、命令和其他数据,这需要在XML中更新。我没有找到如何插入新节点,而是基于以前存在的节点。
QDomElement newCategoriaTag = doc.createElement(QString("categoria")); 
QDomElement newNomeTag = doc.createElement(QString("nome")); 
QDomText newNomeText = doc.createTextNode(QString("Cupom fiscal 2"));
newNomeTag.appendChild(newNomeText);
newCategoriaTag.appendChild(newNomeTag);
root.appendChild(newCategoriaTag);
<comandos>
        <categoria>
                <nome>Cupom fiscal</nome>
                <comando>
                        <nome>01 - Abrir Cupom Fiscal</nome>
                        <env>3</env>
                        <rec>4</rec>
                        <desc>CNPJ / CPF : </desc>
                        <desc>Nome : </desc>
                        <desc>Endereco: </desc>
                </comando>
        </categoria>
        <categoria>
                <nome>Cupom fiscal 2</nome>
        </categoria>
</comandos>