需要可以兼容读取多种不同的XML文件
文件里面的层级会非常多可能会达到6、7层。目前我所能想到的是用Xml.Linq来实现但是这个只能针对具体的文件不能泛用,按照下面贴的忙代码来其他文件的话又要重复这个工作,维护会比较麻烦。哪位对xml了解比较多的朋友指点一下。
```c#
#region 读取所有的数据
XNamespace nsCommon = "http://www.joia.or.jp/standardized/namespaces/Common";
XNamespace nsTM = "http://www.joia.or.jp/standardized/namespaces/TM";
XElement xe = XElement.Load(@"D:\192.168.1.214\TOP.xml");
var elements = from ele in xe.Elements()
select ele;
foreach (var ele in elements)
{
if (ele.Name.LocalName == "Common" && ele.Name.NamespaceName == nsCommon)
{
var Date = (ele.Descendants(nsCommon + "Date").FirstOrDefault()).Value;
var Time = (ele.Descendants(nsCommon + "Time").FirstOrDefault()).Value;
}
if (ele.Name.LocalName == "Measure" && ele.Name.NamespaceName == nsTM)
{
var nstm = ele.Descendants(nsTM + "TM");
foreach (var item in nstm)
{
var nstmR = item.Descendants(nsTM + "R");
foreach (var itemR in nstmR)
{
if (itemR.Name.LocalName == "R" && itemR.Name.NamespaceName == nsTM)
{
var AverageR = (itemR.Descendants(nsTM + "Average").FirstOrDefault()).Value;
}
}
var nstmL = item.Descendants(nsTM + "L");
foreach (var itemL in nstmL)
{
if (itemL.Name.LocalName == "L" && itemL.Name.NamespaceName == nsTM)
{
var AverageL = (itemL.Descendants(nsTM + "Average").FirstOrDefault()).Value;
}
}
}
}
}
#endregion 读取所有的数据