读取xml文件并提取一些整数值

时间:2013-08-12 10:06:35

标签: c# .net xml

我的xml文件包含这样的内容

<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<REPLY>
  <DATA BYTE='116' />
  <DATA BYTE='88' />
  <DATA BYTE='15' />
  <DATA BYTE='0' />
from this
  <DATA BYTE='44' />  
  <DATA BYTE='1' />
  <DATA BYTE='0' />
  <DATA BYTE='0' />
to this
  <DATA BYTE='0' />
  <DATA BYTE='0' />
.....
  <DATA BYTE='255' />
  <DATA BYTE='255' />
  <DATA BYTE='255' />
  <DATA BYTE='0' />
</REPLY>

我想从此读取4行,实际上我想从这4行中提取值44100。值是动态的,文档结构不会改变(至少在前15行)。

这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:10)

  1. 使用XDocumentXDocument.Parse()方法将XML加载到XDocument.Load()实例中。
  2. 使用LINQ to XML查询XML:
  3. var values = doc.Root.Elements("DATA").Skip(4)
                                          .Take(4)
                                          .Select(x => (int)x.Attribute("BYTE"))
                                          .ToList();
    

    我假设REPLY是XML中的根元素。如果不是,您必须首先查询它:

    var reply = doc.Descendants("REPLY").First();
    var values = reply.Elements("DATA").Skip(4)
                                       .Take(4)
                                       .Select(x => (int)x.Attribute("BYTE"))
                                       .ToList();