QDomElementに要素を追加

XML関係でひっかかったことがあったのでメモします。

QDomDocumentを使ってXMLを解析するときに次のように内容がない空タグを定義することがあります。

<item></item>

このような中身のない要素がある場合、QDomElementのテキストを挿入しようとしてもうまくいきません。

QDomDocument document();
document.setContent("<item></item>");
QDomElement element = document.elementsByTagName("ITEM").at(0);
element.firstChild().toText().setData("content");
    ///テキストを挿入できない
element.appendChild(QDomText());
    ///ノードでも挿入できない

もし空要素にテキストや子要素を挿入したい場合は次のような方法でうまくいきます。

element.appendChild(document.createTextNode("テキスト"));

このようにQDomDocumentからあたらしくノードを作って追加すればOKです。

では、また!

関連項目
プライバシーポリシー