2

QDomDocument を使用して XML ドキュメントを記述します。
しかし、私の dom ツリーでは、一部のノードは docA を使用して作成され、一部は docB を使用して作成されます。

QDomElement parentNode = docA.CreateElement("name");//created by docA
QDomElement childNode = docB.CreateElement("value");//created by docB
parentNode.appendChild(childNode);//in onr tree

と:

QTextStream out(&file);
docA.save(out, Indent);//docA created the root QDomElement
                       //write the file using docA      

では、ツリー全体をこのように XML に書き込むことは可能でしょうか?

4

1 に答える 1

5

docB がまだ使用されている場合に docA が範囲外になると、事態が悪化し始めるため、これを避ける必要があります。あなたが提案していることは、それが起こるまで技術的にはうまくいくと思いますが、ライブラリはそれを思いとどまらせるように設計されているようです.

ただし、おそらく必要な関数 QDomDocument::importNode() があります。次のようなことができます。

docAParent.appendChild( docA.importNode( docBNode, true ) );

ブール値の引数は、ディープ コピーを作成するかどうかを制御します。

ドキュメントを参照してください: http://qt-project.org/doc/qt-4.8/qdomdocument.html#importNode

于 2013-03-23T10:07:23.413 に答える