Converting QXmlItem to QtDomElement or similar?

Posted by EightyEight on Stack Overflow See other posts from Stack Overflow or by EightyEight
Published on 2010-03-11T23:38:02Z Indexed on 2010/03/13 4:47 UTC
Read the original article Hit count: 614

Filed under:
|
|
|
|

Hello everyone.

I'm parsing a fairly complicated XML file of the following structure:

<root>
...
...
<item>
<subitem id="1"/>
<text>
text1
</text>
</item>
<item>
<subitem id="2"/>
<text>
text2
</text>
</item>
...
<item>
...
</item>
...
</root>

It's pretty crude but you get my drift I hope. I'm primarily interested in "item" nodes. So I wrote the following code (directly out of the Qt's online manual):

QXmlQuery query;
query.setQuery("//item/");

QXmlResultItems result;
query.evaluateTo(&result);

QXmlItem item(result.next());
while (!item.isNull()) 
{
  if (item.isNode())
  {
      // WHAT DO I DO NOW?
  }
  item = result.next();
}

Now, QXmlItem appears to represent two concepts, a literal value (like a string) or a Node, (which is what item.isNode() is doing). Unfortunately, I can't grasp how to convert the QXmlItem to something that will query-able again. In particular from the example above I'd like to grab the "id" attribute, and the text element. Can I do this using the XQuery approach, or am I way off base here?

Any advice?

Thanks!

© Stack Overflow or respective owner

Related posts about qt

Related posts about qtxml