0

我有这样的内容的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 行中提取值44, 1, 0, 。0值是动态的,文档的结构不会改变(至少在前 15 行)。

做这个的最好方式是什么?

4

1 回答 1

10
  1. 使用or方法将您的 XML 加载到XDocument实例中。XDocument.Parse()XDocument.Load()
  2. 使用 LINQ to XML 查询您的 XML:
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();
于 2013-08-12T10:12:28.987 回答