У меня есть этот XML:Получение данных из XML иерархически
<folders>
<Folder>
<Folder_name>test</Folder_name>
<Number_of_files>2</Number_of_files>
<File>
<File_name>DTLite4461-0327</File_name>
<File_size_in_bytes>14682176</File_size_in_bytes>
</File>
<File>
<File_name>TeamViewer_Setup-ioh</File_name>
<File_size_in_bytes>11057224</File_size_in_bytes>
</File>
</Folder>
<Folder>
<Folder_name>podFolder1</Folder_name>
<Number_of_files>1</Number_of_files>
<File>
<File_name>npp.6.9.1.Installer</File_name>
<File_size_in_bytes>4203840</File_size_in_bytes>
</File>
</Folder>
<Folder>
<Folder_name>podFolder2</Folder_name>
<Number_of_files>1</Number_of_files>
<File>
<File_name>d-470sqe</File_name>
<File_size_in_bytes>2582112256</File_size_in_bytes>
</File>
</Folder>
</folders>
Я хочу, чтобы напечатать его в виде сетки, которая имеет 3 колонки: имя файла, размер файла и имя родительской папки.
я могу получить все данные от всех узлов, но я не могу соединить имена файлов с соответствующим именем родительской папки и соответствующего размером
Я попытался, как это:
XmlDocument doc = new XmlDocument();
doc.Load(xPath);
XmlNodeList folderNodes = doc.SelectNodes(@"/folders/Folder");
int brojac = 0;
foreach (XmlNode folderNode in folderNodes)
{
XmlNodeList fileNameNodes = doc.SelectNodes(@"/folders/Folder/File/File_name");
XmlNodeList fileSizeNodes = doc.SelectNodes(@"/folders/Folder/File/Size");
foreach (XmlNode fileName in fileNameNodes)
{
dgvXML.Rows.Add(fileName.InnerText, folderNode.InnerText, "");
}
}
С помощью этого кода он правильно печатает имя родительской папки, но каждый раз получает все файлы, и я не могу подключить его к размеру файла.
Я хочу, чтобы получить что-то подобное в виде сетки:
> File name ----------- Parent folder name ------ File size
> DTLite4461-0327 test 14682176
> TeamViewer_Setup-ioh test 11057224
> npp.6.9.1.Installer podFolder1 4203840
> d-470sqe podFolder2 2582112256
Какой лучший способ сделать это?
Я уже ответил на [аналогичный вопрос] (http://stackoverflow.com/questions/35585310/get-nested-elements-on-xml-with-lambda-and-set-to-listobject). Мое предложение, чтобы добавить '' подузел в '' узел, а затем: ' ', чтобы быть в состоянии получить их. –