很抱歉,如果说明不好,但我不知道怎么把这个... 但这是一个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>
我已将其转换为数据集,以便将信息作为数据表进行访问。 但我的问题是试图获取errorCodes。我试图通过检查表的关系来解决这个问题。因为我必须弄清楚哪些错误代码与哪个人相关联,以便正确显示它们。我无法控制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阅读器来获取所有这些,但数据已经在数据集中了,我想要学习新东西。所以请将它作为最后的手段。
提前谢谢!答案 0 :(得分:1)
答案 1 :(得分:0)
我最后只是阅读XML检查节点名称并为错误代码构建一个单独的表,当我找到信息的结束元素时,我会单独吐出表格。