【问题标题】:reading xml with linq (c#)使用 linq (c#) 读取 xml
【发布时间】:2012-06-25 08:46:24
【问题描述】:

如何阅读下面的xml文档?

我的代码是:

var vb =
    (from vbs in XMLDoc.Descendants("Response").Descendants("Records ")
    select new
        {
           ref = vbs.Element("ref").Value
        }).ToList();

XML 文档:

<Response>
  <Msg>
       <Code>30</Code>
    <Query/>
  </Msg>
<Rec>
    <Records price="1989" no="838976" ref="1927A64FF6B03527E5BFD8424F647848005143DB" query="00"/>
</Rec>
</Response>

【问题讨论】:

  • 怎么了?代码返回什么(如果有的话)?
  • 对于初学者来说,"Records " 应该是 "Records"
  • 我只想要REC的台词,怎么办?
  • 我无法绑定到 GridView,似乎是:跨度>

标签: c# .net xml linq


【解决方案1】:

"Records " 应该是 "Records",并且您在匿名类成员初始化程序中对 Element() 的调用应该是 Attribute(),因为您正在读取不是元素的属性。

var vb =
    (from vbs in XMLDoc.Descendants("Response").Descendants("Records")
    select new
        {
           ref = (string)vbs.Attribute("ref")
        }).ToList();

读取属性时首选转换为string,IMO,因为找不到属性时它将返回null。如果您改用vbs.Attribute("ref").Value,则如果该属性不存在,您将导致NullReferenceException

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-21
    • 2012-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多