[英]How to read specific fields from XML and load into Oracle db
my XML : 我的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>
<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>
C# Code: C#代码:
var xmlNodes = xElement.Descendants("resource")
.Select(e => new
{
ConvertFrom = e.Attribute("symbol").Value,
ConvRate = e.Attribute("price").Value,
ConvDate = e.Attribute("utctime").Value
});
I tried the above code to fetch and load into oracle but i got a below error. 我尝试上面的代码来获取并加载到oracle但我收到了以下错误。
System.Linq.Enumerable+WhereSelectEnumerableIterator
2[System.Xml.Linq.XElement,<>f__AnonymousType0
3[System.String,System.String,System.String]]System.Linq.Enumerable + WhereSelectEnumerableIterator
2[System.Xml.Linq.XElement,<>f__AnonymousType0
3 [System.String,System.String,System.String]]
Please help me to resolve this issue. 请帮我解决这个问题。
I think you have misunderstood Attribute
method, the name of the attribute is name
, symbol
is the value, so your query could be this way: 我认为你误解了
Attribute
方法, Attribute
的名称是name
, symbol
是值,所以你的查询可能是这样的:
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"),
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.