C# 如何从XML中读取特定字段并加载到Oracle数据库中
我的XML:C# 如何从XML中读取特定字段并加载到Oracle数据库中,c#,xml,linq,C#,Xml,Linq,我的XML: - <resources start="0" count="188">- - <resource classname="Quote"> <field name="name">USD/GEL</field> <field name="price">2.418900</field> <field name="symbol">GEL=X</field> <f
- <resources start="0" count="188">-
- <resource classname="Quote">
<field name="name">USD/GEL</field>
<field name="price">2.418900</field>
<field name="symbol">GEL=X</field>
<field name="ts">1488758461</field>
<field name="type">currency</field>
<field name="utctime">2017-03-06T00:01:01+0000</field>
<field name="volume">0</field>
</resource>-
</resources>
var xmlNodes = xElement.Descendants("resource")
.Select(e => new
{
ConvertFrom = e.Attribute("symbol").Value,
ConvRate = e.Attribute("price").Value,
ConvDate = e.Attribute("utctime").Value
});
我尝试将上面的代码提取并加载到oracle中,但出现以下错误
System.Linq.Enumerable+whereselectEnumerableInterator2[System.Xml.Linq.XElement,f_u匿名类型0
3[System.String,System.String,System.String]
请帮助我解决此问题。我认为您误解了
属性
方法,属性的名称是名称
,符号
是值,因此您的查询可能是这样的:
var xmlNodes = xElement.Descendants("resource")
.Select(e => new
{
ConvertFrom = (string)e.Elements().FistOrDefault(r=>r.Attribute("name").Value=="symbol"),
ConvRate = (string)e.Elements().FistOrDefault(r=>r.Attribute("name").Value=="price"),
ConvDate = (DateTime)e.Elements().FistOrDefault(r=>r.Attribute("name").Value=="utctime"),
});
我认为您误解了
属性
方法,属性的名称是名称
,符号
是值,因此您的查询可能是这样的:
var xmlNodes = xElement.Descendants("resource")
.Select(e => new
{
ConvertFrom = (string)e.Elements().FistOrDefault(r=>r.Attribute("name").Value=="symbol"),
ConvRate = (string)e.Elements().FistOrDefault(r=>r.Attribute("name").Value=="price"),
ConvDate = (DateTime)e.Elements().FistOrDefault(r=>r.Attribute("name").Value=="utctime"),
});