Witam.
Nie mam doświadczeń z XML, a muszę pobrać dane z webservisu.
Otrzymuję plik o następującej strukturze"
<?xml version="1.0" encoding="ISO-8859-1"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Header/>
<soap:Body>
<ZdDocListGetResponse xmlns="http://www.serwer.pl">
<ArrayZdDocListGetResult>
<Status>1</Status>
<ZdDocListGetResult>
<ZdListGetHeaderResult>
<DocId>222</DocId>
<DocNo>2019/a/008</DocNo>
<DateDoc>2019-01-10T00:00:00</DateDoc>
<DocStatus>W</DocStatus>
<DocAddressDelivery>Koluszki, ul Jasna 12 </DocAddressDelivery>
<DocWarehouse>abc</DocWarehouse>
<DateRealizationPlanned>2019-02-19T00:00:00</DateRealizationPlanned>
<ArrayZdListGetLinesResult>
<ZdListGetLinesResult>
<PositionItem>1</PositionItem>
<MaterialCode>23456</MaterialCode>
<MaterialCatalogNumber>10-20-30</MaterialCatalogNumber>
<MaterialDescription>Stolik nocny Prometeusz</MaterialDescription>
<Quantity>2.0000</Quantity>
<Unit>SZT</Unit>
</ZdListGetLinesResult>
<ZdListGetLinesResult>
<PositionItem>2</PositionItem>
<MaterialCode>386700</MaterialCode>
<MaterialCatalogNumber>10-20-40</MaterialCatalogNumber>
<MaterialDescription>Komoda Kasjopea</MaterialDescription>
<Quantity>1.0000</Quantity>
<Unit>SZT</Unit>
</ZdListGetLinesResult>
</ArrayZdListGetLinesResult>
<ArrayZdListGetNotesResult/>
</ZdListGetHeaderResult>
<ZdListGetHeaderResult>
<DocId>333</DocId>
<DocNo>2019/b/009</DocNo>
<DateDoc>2019-01-14T00:00:00</DateDoc>
<DocStatus>W</DocStatus>
<DocAddressDelivery>Pacanowo, kozia 2</DocAddressDelivery>
<DocWarehouse>def</DocWarehouse>
<DateRealizationPlanned>2019-02-27T00:00:00</DateRealizationPlanned>
<ArrayZdListGetLinesResult>
<ZdListGetLinesResult>
<PositionItem>1</PositionItem>
<MaterialCode>554433</MaterialCode>
<MaterialCatalogNumber>10-20-30</MaterialCatalogNumber>
<MaterialDescription>Stolik nocny Prometeusz </MaterialDescription>
<Quantity>1.0000</Quantity>
<Unit>SZT</Unit>
</ZdListGetLinesResult>
<ZdListGetLinesResult>
<PositionItem>2</PositionItem>
<MaterialCode>888999</MaterialCode>
<MaterialCatalogNumber>10-20-50</MaterialCatalogNumber>
<MaterialDescription>Szafa Viktoria </MaterialDescription>
<Quantity>1.0000</Quantity>
<Unit>SZT</Unit>
</ZdListGetLinesResult>
</ArrayZdListGetLinesResult>
<ArrayZdListGetNotesResult/>
</ZdListGetHeaderResult>
</ZdDocListGetResult>
</ArrayZdDocListGetResult>
</ZdDocListGetResponse>
</soap:Body>
</soap:Envelope>
Bez problemu odczytuję sobie dane z poziomu <ZdListGetHeaderResult>:
XmlDocument doc = new XmlDocument();
doc.LoadXml(pobraneDane);
XmlNodeList DocId = doc.GetElementsByTagName("DocId");
XmlNodeList DocNoExternal = doc.GetElementsByTagName("DocNoExternal");
XmlNodeList DocNo = doc.GetElementsByTagName("DocNo");
for (int i = 0; i < doc.Count; i++)
{
dataGridView1.Rows.Add(DocId[i].InnerXml, DocNoExternal[i].InnerXml, DocNo[i].InnerXml);
}
Chciałbym jednak kolejny DGV wypełnić danymi szczegółowymi <ZdListGetLinesResult> dla <DocId>333</DocId>
Jak to zrobić? Szukałem po różnych forach, ale nigdzie nie znalazłem przykładu XML'a tak skomplikowanego.