对不起,如果描述很差,但我不知道该怎么说......但这里是一个 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 表中数据的实际值。但我不知道如何将它链接回与之关联的行/人。关系生成的索引是根据它们的出现构建的(例如,susan 的错误代码将为 0,peter 的错误代码将为 1),与它们在 XML 中的位置无关。
我要么做错了,要么错误地查看了这些数据。我知道我可以使用 XML 阅读器来获取所有这些,但数据已经在数据集中,我想学习一些新东西。所以请只建议作为最后的手段。
提前致谢!