Qt DOM xml パーサーを使用しているときに、< を含むノード要素で問題が発生しました。そのテキストで。元の xml は次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
...
<Material>
<Name><Beige>1</Name>
<Color>#d3bd90</Color>
</Material>
しかし、パーサーは明らかに < を変換します。と > おそらくQDomDocument::setDocumentが呼び出されたときに、テキストを<と>に変換します。その結果、名前ノードで QDomNode::text() を呼び出すと、予想される "<Beige>1" ではなく "1" として名前が付けられます。
名前ノードの実際のテキストにエスケープされた特殊文字が含まれる可能性があるこの問題を回避する簡単な方法はありますか? できれば、Qt DOM パーサーを引き続き使用できるようにします。
- - 編集 - -
QXmlDefaultHandler に基づく SAX リーダーでテストしたところ、同じ結果が得られました。
QXmlDefaultHandler::characters は Name 要素に対して「1」のみを返します。