用C sharp读取单个xml选项卡



我正试图使用c sharp从下面的xml文件中读取Lat、Long和Alt的各个值。xml的格式与我以前使用的不同。我可以从文件中提取元素,但我试图只读取Lat、Long、Alt等的单个值。我还没能弄清楚如何使用XmlReader或LINQ来做到这一点。

文件:

<Entry MC="11" Time="0.00" ActName="SCR_ON">
<ActingPlat ID="1"/>
<AgainstPos Lat="24.5399" Lon="46.7704" Alt="567"/>
</Entry>

要获取纬度,请执行以下操作:

string xml = "<Entry MC="11" Time="0.00" ActName="SCR_ON"><ActingPlat ID="1"/><AgainstPos Lat="24.5399" Lon="46.7704" Alt="567"/></Entry>";
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
var latitude = doc.SelectSingleNode("//AgainstPos").Attributes["Lat"].InnerText;

你可以得到其他值做相同的模式

使用Xml Linq

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
namespace ConsoleApplication1
{
class Program
{
const string FILENAME = @"c:temptest.xml";
static void Main(string[] args)
{
XDocument doc = XDocument.Load(FILENAME);
var results = doc.Descendants("AgainstPos").Select(x => new
{
lat = (decimal)x.Attribute("Lat"),
lon = (decimal)x.Attribute("Lon"),
alt = (decimal)x.Attribute("Alt")
}).ToList();
}
}
}

最新更新