我们正在使用货币服务进行货币兑换。有XML网站响应不是最大的格式。它看起来像这样如何正确解析此xml响应
<RESPONSE>
<EXPR>USD</EXPR>
<EXCH>CAD</EXCH>
<AMOUNT>1</AMOUNT>
<NPRICES>1</NPRICES>
<CONVERSION>
<DATE>Thu, 07 Apr 2011 21:00:00 GMT</DATE>
<ASK>1.0418</ASK>
<BID>1.0415</BID>
</CONVERSION>
<EXPR>USD</EXPR>
<EXCH>AUD</EXCH>
<AMOUNT>1</AMOUNT>
<NPRICES>1</NPRICES>
<CONVERSION>
<DATE>Thu, 07 Apr 2011 21:00:00 GMT</DATE>
<ASK>1.0461</ASK>
<BID>1.0459</BID>
</CONVERSION>
</RESPONSE>
于是,我就写了下面的SQL语句
SELECT
T.c.value('../EXPR[1]', 'VARCHAR(3)')
, T.c.value('../EXCH[1]', 'VARCHAR(3)')
, T.c.value('ASK[1]', 'MONEY')
FROM @xml.nodes('/RESPONSE/CONVERSION') T(c)
但是因为两个头(EXPR和交换)处于同一水平,是有反正我可以选择后面的Expr高于转换。 而不读取为C#中的文本文件。 我明白我将如何实现这一目标。
哇!提出这种回复格式的人应该被送回学校。 – 2011-04-08 17:47:41
你是否试图在SQL中完成这一切? – Tejs 2011-04-08 17:49:35
您是否正在寻找SQL或C#中的答案?如果您不想查找C#答案,则可能需要删除该标签。 – Mykroft 2011-04-08 17:50:35