Я пытаюсь проанализировать вывод XML из веб-службы REST и был направлен в сторону использования Linq2Xml для запроса XML для атрибутов, которые я им предоставляю. Вывод XML выглядит следующим образом:Linq2Xml Parse Output из веб-службы REST
<?xml version="1.0" encoding="UTF-8"standalone="yes" ?>
<Response Status="OK">
<Item Name="NumberZones">2</Item>
<Item Name="CurrentZoneID">10001</Item>
<Item Name="CurrentZoneIndex">1</Item>
<Item Name="ZoneName0">Westralia</Item>
<Item Name="ZoneID0">0</Item>
<Item Name="ZoneGUID0">{81C56183-31DA-45C2-90C3-81609F01B38B}</Item>
<Item Name="ZoneName1">Lounge</Item>
<Item Name="ZoneID1">10001</Item>
<Item Name="ZoneGUID1">{eac0109e-0090-a992-7fba-dc67fe29e6e7}</Item>
</Response>
Я хотел вернуться в DataTable ZoneId, ZoneName и ZoneGUID, я хотел функцию, чтобы вернуть что-то вроде:
id name guid
0 westralia {81C56183-31DA-45C2-90C3-81609F01B38B}
10001 lounge {eac0109e-0090-a992-7fba-dc67fe29e6e7}
Я был работая над следующей функцией для запроса XML и добрались до попытки вернуть результаты (даже не пытаться манипулировать данными, чтобы получить их в желаемом формате).
Private Function getServerResponse_Linq(ByVal queryString As Uri) As DataTable
Dim dt As DataTable = New DataTable("data")
With dt
.Columns.Add("name")
.Columns.Add("Value")
End With
Dim loaded As XDocument = XDocument.Load(queryString.ToString)
Dim dr As DataRow
Dim query = From c In loaded.<Response> Select c
For Each result In query
dr = dt.NewRow
With dr
.Item("name") = [email protected]
.Item("value") = result.Value
End With
Next
Return dt
End Function
Возвращенный DataTable пуст, я подтвердил, что результат действительно есть XML назначены, и result.value является строка версии файла XML (200Westralia0 {81C56183-31DA-45C2-90C3-81609F01B38B} Lounge10001 {eac0109e-0090-a992-7fba-dc67fe29e6e7})
Может ли кто-нибудь помочь в том, как я могу читать из примера REST XML над именем (ZoneName%) и значением атрибута (Westralia и Lounge)?
Отлично! это всегда простые вещи (хорошо, если вы знаете их, что есть). Эти изменения работали отлично, если бы я мог потребовать обратно последние 3 часа. – Lima