У меня есть файл XML, который выглядит так:
<?xml version="1.0"? encoding="UTF-8" standalone="no"?>
<dir name="mint">
<dir name="pepper">
<dir name="shauninman">
<dir name="geomint">
<file name="readme.txt"/ token="3">
<file name="blank.gif"/ token="2">
<file name="class.php"/ token="7">
<dir/>
<dir/>
<dir/>
<dir name="test1">
<dir name="test2">
<dir name="test3">
<file name="foo1.txt"/ token="3">
<file name="foo2.gif"/ token="5">
<file name="foo3.php"/ token="5">
<dir/>
<dir name="test4">
<file name="foo4.txt"/ token="3">
<file name="foo5.gif"/ token="5">
<file name="foo6.php"/ token="5">
<dir/>
<dir/>
<dir/>
<dir/>
Однажды я написал функцию на C++, которая выполняет префиксный обход древовидной структуры, которая выглядит следующим образом:
int traverseTree( Item* node, int id )
{
cout << id;
id = id+1;
vector<Item*>* children = node->getChildren();
for( int i = 0; i < children->size(); ++i )
id = traverseTree( children->at(i), id );
return id;
}
Теперь я хочу сделать то же самое, но из файла XML. Другими словами, я хотел бы разобрать XML, а затем отправить корень в функцию "traverseTree". Затем при каждом рекурсивном вызове я мог бы извлекать дочерние элементы текущего узла.
Как я могу использовать такой инструмент, как xerces, для достижения этой цели? Какой будет новая функция?
Спасибо за любую помощь!