He estado tratando a buscar valores de texto de nodo de este archivo XML:Extracción de valores de nodo secundario con QXmlItem como QXmlQuery centran
<!DOCTYPE structure>
<data>
<x>
<id>1</id>
<nam>tytuł</nam>
<tab>21</tab>
<ind>5</ind>
<pre>TY</pre>
<khw>C.TY</khw>
</x>
<x>
<id>2</id>
<nam>autor</nam>
<tab>21</tab>
<ind>5</ind>
<pre>FO</pre>
<khw>C.FO</khw>
</x>
<x>
<id>3</id>
<nam>hasło korporatywne</nam>
<tab>21</tab>
<ind>5</ind>
<pre>FN</pre>
<khw>C.FN</khw>
</x>
</data>
Lo que quiero hacer es ir a buscar todos los nodos y de los niños y convertir a QMap. No tengo problemas para obtener un solo elemento, pero cuando se trata de obtener elementos secundarios estableciendo el resultado de QXmlQuery como foco, el QString que evalúo la consulta del nodo secundario está vacío. Yo uso este trozo de código:
QXmlResultItems results;
QFile structure("./structure.xml"); // xml file, as described earlier
structure.open(QFile::ReadOnly);
QXmlQuery query;
query.setFocus(&structure);
query.setQuery("data/x");
query.evaluateTo(&results);
QXmlItem next = results.next();
while(!next.isNull()) {
qDebug() << next.toNodeModelIndex().stringValue(); // everything's fine. It prints contents of <x>'s child nodes
QXmlQuery childQuery;
QString r;
childQuery.setFocus(next);
childQuery.setQuery("./nam/text()"); // already tested: "/nam/text()", "/nam/string()", "x/nam/string()", "data/x/nam/string()" etc... still no luck.
childQuery.evaluateTo(&r);
qDebug() << r; // prints \n but it should print content of <nam> node.
next = results.next();
}
software que utilizo: Qt SDK 4.7.2 directamente desde el sitio web de Qt, QtCreator 2.3.1 en Windows y Linux (sin ninguna diferencia en este caso particular, los resultados son los mismos) . Quiero estar seguro de que es el problema de mi falta de conocimiento, en lugar de error de software, por favor ayuda
Lo curioso es que funciona con" ./ id/string() "o incluso con" ./name/string() "si cambia el nombre de las etiquetas" nam "a" nombre ". – alexisdm
Parece el mismo problema que se describe aquí http://qt-project.org/forums/viewthread/25725 – CAMOBAP