Foreach访问节点内的XML元素
问题描述:
我在一个大文件中有以下XML元素,我试图迭代通过StayDateRange内的元素,我该如何实现?我有其他部分,我需要做类似的事情。Foreach访问节点内的XML元素
<StDteRange timeUnitType="DAY">
<strtTime>2009-06-28T00:00:00.000</strtTime>
<numOfUnits>4</numOfUnits>
</StDteRange >
IEnumerable<XElement> StDteRange = from el in root.Descendants(aw + "StDteRange ")
select el;
foreach (XElement el in StDteRange)
{
if (el.Name.LocalName=="strtTime")
Console.WriteLine((DateTime)el);
if (el.Name=="numOfUnits")
Console.WriteLine((int)el);
}
答
有一些很好的例子在线:
Scott Guthrie's Blog - Using Linq to XML
您可以创建一个简单的类来保存您的结果,然后在你的LINQ查询创建新的对象:
public class XMLResult()
{
public string localname;
public int Units;
}
IEnumerable<XMLResult> results = from el in root.Descendants(aw + "StDteRange ")
select new XMLResult() {
Name = el.Element("strtTime").value,
Units = el.Element("numOfUnits").value
};
你有没有考虑使用序列化导航控制数据? –
你如何做到这一点?任何意见,表示赞赏。 – user67144