Ich habe diese xml:Abrufen von Daten aus XML hierarchisch
<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>
Ich will es in der Rasterdarstellung drucken, die drei Spalten: Dateiname, Dateigröße und Parent Ordnernamen.
ich alle Daten von allen Knoten bekommen, aber ich kann nicht Dateinamen eine Verbindung zum entsprechenden übergeordneten Ordnernamen und entsprechende Größe
ich so versucht erhalten:
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, "");
}
}
Mit diesem Code Es druckt den Namen des übergeordneten Ordners korrekt aus, aber alle Dateien werden jedes Mal abgerufen und ich kann sie nicht mit der Dateigröße verbinden.
Ich mag so etwas wie dies in der Rasterdarstellung erhalten:
> 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
Welches ist der beste Weg, dies zu tun ist?
Ich hatte bereits auf [ähnliche Frage] beantwortet (http://stackoverflow.com/questions/35585310/get-nested-elements-on-xml-with-lambda-and-set-to-listobject). Mein Vorschlag ist es, '' Unterknoten '' Knoten und dann: ' ' in der Lage sein, sie zu bekommen. –