我在解析XML报告中的信息时遇到问题。
XML结构如下:
<creditAccounts>
<creditAccount>
<accountDatabaseInfo>
<recordId> 123 </recordId>
</accountDatabaseInfo>
<client> </client>
<balance>
<accountBalance>
<BalanceId> 344354 </BalanceId>
<BalanceDate> 2018-10-16 </BalanceDate>
</accountBalance>
<accountBalance>
<BalanceId> 344357 </BalanceId>
<BalanceDate> 2018-10-17 </BalanceDate>
</accountBalance>
</balance>
</creditAccount>
<creditAccount>
<accountDatabaseInfo>
<recordId> 222 </recordId>
</accountDatabaseInfo>
<client> </client>
<balance>
<accountBalance>
<BalanceId> 485323 </BalanceId>
<BalanceDate> 2018-10-05 </BalanceDate>
</accountBalance>
<accountBalance>
<BalanceId> 546221 </BalanceId>
<BalanceDate> 2018-10-06 </BalanceDate>
</accountBalance>
<accountBalance>
<BalanceId> 439523 </BalanceId>
<BalanceDate> 2018-10-02 </BalanceDate>
</accountBalance>
</balance>
</creditAccount>
</creditAccounts>
所以在这种结构中,我有具有2 balancId历史记录的第一个信用帐户和具有3 balanceId历史记录的第二个信用帐户。我想要从表中获得的表包含所有balanceId和所有recordId:
我正在使用以下代码通过OPENXML提取此信息:
FROM
OPENXML(@Handle,'creditAccounts/creditAccount/balance/accountBalance', 2)
WITH (
recordId NVARCHAR(100) '/creditAccounts/creditAccount/accountDatabaseInfo/recordId//',
BalanceId NVARCHAR(100) 'balanceId',
BalanceDate NVARCHAR(100) 'balanceDate',
)
问题是OPENXML中的初始路径包含所有BalanceId和所有BalanceDate数据,但是我将其与另一个节点中的recordId信息连接时遇到问题...我使用了新的源FOT recordId,但是尽管两个不同...有人知道如何更改此路径才能正常工作吗?我试图用不同的openxml路径联接2个表,但是仍然没有相同的键来联接它……有什么提示吗?