Извините, если описание плохое, но я не знаю, как еще это выразить ...
Но вот пример структуры XML
<?xml version=”1.0” encoding=”UTF-8”>
<Response xmlns="http://www.blah.com">
<searchResult>
<info>
<firstName>John</firstName>
<lastName>Doe</lastName>
<totalCharges>100.00</totalCharges>
<nonPaymentCode>99999</nonPaymentCode>
</info>
<info>
<firstName>Susan</firstName>
<lastName>Doe</lastName>
<totalCharges>1000.00</totalCharges>
<errorCodes>
<errorCode>12345</errorCode>
</errorCodes>
</info>
<info>
<firstName>Peter</firstName>
<lastName>Doe</lastName>
<totalCharges>10.00</totalCharges>
<errorCodes>
<errorCode>12345</errorCode>
<errorCode>54321</errorCode>
<errorCode>85246</errorCode>
</errorCodes>
</info>
</searchResult>
</claimInquiryResponse>
Я преобразовал это в набор данных, чтобы получить доступ к информации в виде данных.
Но моя проблема заключается в попытке получить коды ошибок. Я пытался выяснить это, проверив взаимосвязь таблиц. Потому что я должен выяснить, какие коды ошибок связаны с каким человеком, чтобы правильно их отображать. Я не могу управлять структурой XML, и все необязательно, чтобы уменьшить избыточную пропускную способность, поэтому изменение ее на данный момент не вариант. Но вот пример того, что я сделал:
For Each rel As DataRelation In ds.Tables(i).ChildRelations
If rel.Nested Then
Dim temp As New DataTable
temp = rel.ChildTable
For Each relationship As DataRelation In temp.ChildRelations
For Each row As DataRow In relationship.ChildTable.Rows
For Each column As DataColumn In relationship.ChildTable.Columns
rowValues &= column.ColumnName & "-" & row(column.ColumnName) & "-" & relationship.RelationName & vbCrLf
Next
Next
Next
End If
Next
Это дает мне фактические значения данных в таблице errorCodes. но я не могу понять, как связать его с тем, с кем он был связан. Индексы, сгенерированные отношениями, основаны на их происхождении (например, коды ошибок для Сьюзен будут 0, а для Питера - 1), не относящиеся к их расположению в XML.
Я либо делаю это неправильно, либо смотрю на эти данные неправильно.
Я знаю, что могу использовать XML-ридер, чтобы получить все это, но данные уже находятся в наборе данных, и мне хочется узнать что-то новое. так что предложите это только в крайнем случае, пожалуйста.
спасибо заранее!