Доброго времени суток уважаемые. Работаю с QtXml (Dom).
Имеется простенький xml документ
<?xml version="1.0" encoding="windows-1251"?>
<Response>
<Error Code="1011">
<ErrorLine Idx="1">ляляляля</ErrorLine>
</Error>
<Response>
следующей функцией получаю элементы:
QDomElement getNode ( const QDomNode node, QString nodeName )
{
QDomElement resultElement;
resultElement.clear();
QDomNode domNode = node.firstChild();
while ( !domNode.isNull() )
{
if ( domNode.isElement() )
{
QDomElement domElement = domNode.toElement();
if ( !domElement.isNull() )
{
if ( domElement.tagName() == nodeName )
{
resultElement = domNode.toElement();
r = resultElement;
return resultElement;
};
}
}
getNode ( domNode, nodeName ) ;
domNode = domNode.nextSibling();
}
}
r - глобальная переменная типа QDomElement, сделано исключительно для тестов.
Так вот проблема в следующем, когда я запрашиваю getNode (rootElement, «Error») - всё отрабатывает нормально и я получаю и глобальную переменную и возвращаемое значение. а вот если дёрнуть getNode(rootElement, «ErrorLine») то в глобальной переменной я получаю ожидаемый результат, а в возвращаемом значении NULL :(
Подскажите где искать загвоздку? не хочется пользоваться глобальными переменными.