Comment obtenir les valeurs des nœuds enfants avec QDomDocument?
Un recevoir une chaîne de caractères comme ceci:
<invoke name="CanClose" returntype="xml">
<arguments>
<string># 998.40</string>
<number>49920</number>
</arguments>
</invoke>
Je voudrais utiliser QDomDocument
pour obtenir les valeurs des arguments' nœuds enfants par leur indice (j'aimerais extraire les chaînes de caractères "# 998.40" et "49920" dans l'exemple).
C'est ce que j'ai essayé:
QString argument(int index)
{
QDomNode arg = xml->elementsByTagName("arguments").at(index);
return arg.nodeValue();
}
Mais même arg
était vide. Ce que je fais mal ici?
Merci d'avance.
Vous devez vous connecter pour publier un commentaire.
Donc, apparemment, le texte à l'intérieur d'un nœud est un nœud lui-même, aussi. Voilà comment cela fonctionne:
elementsByTagName() renvoie une liste de tous les nœuds (éléments) avec le nom de la balise "arguments" dans les nœuds du sous-arbre.
.à() retourne un de ces "arguments" des éléments de la liste, et non de leurs enfants.
Si vous voulez que les enfants, vous avez besoin pour effectuer une itération sur leurs respectifs childNodes().
Cette fonction renvoie un QDomNodList à partir de laquelle il y a un élément de fonction pour obtenir à chaque nœud (et un compteur pour savoir combien il y en a)
De cela, je dirais que le code devrait probablement être
http://doc.trolltech.com/3.3/qdomdocument.html#elementsByTagName
http://doc.trolltech.com/3.3/qdomnodelist.html#item
Vous devriez probablement vérifier à l'aide de la NodeList compter que l'indice est dans les limites.
item
est le même queat
.