Имеется xml следующего формата:
Раскрывающийся текст
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE info>
<level1_1>
<level2_1 name="level2text1"></level2_1>
<level2_1 name="level2text2"></level2_1>
</level1_1>
<level1_2>
<level2_2 name="sample text1"></level2_2>
<level2_2 name="sample text2"></level2_2>
</level1_2>
<!DOCTYPE info>
<level1_1>
<level2_1 name="level2text1"></level2_1>
<level2_1 name="level2text2"></level2_1>
</level1_1>
<level1_2>
<level2_2 name="sample text1"></level2_2>
<level2_2 name="sample text2"></level2_2>
</level1_2>
Надо из него прочитать информацию (а конкретно текст атрибутов тегов второго уровня - "level2text1", "level2text2", "sample text1" и "sample text2").
Читаю с помощью QDomDocument так:
code
QDomDocument info;
QFile file(filename);
file.open(QIODevice::ReadOnly);
info.setContent(file.readAll());
file.close();
QDomNodeList lst1 = info.elementsByTagName("level2_1");
// обработка элементов списка lst
QDomNodeList lst2 = info.elementsByTagName("level2_2");
Но почему-то список lst2 оказывается пустым. Из этого можно сделать вывод, что метод elementsByTagName ищет теги только в пределах первого тега первого уровня (в моем случае - level1_1), и не рассматривает данные, находящиеся за пределами этого тега. Как заставить его увидеть данные других тегов первого уровня?
UPD: проблема была в неправильной структуре xml. Исправил - все прочиталось