我正在阅读一个XML文件,其中列出了天气的预测时间步长。预测分为几天,其中包含几个时间步骤。我想一次阅读所有的时间步骤,而不是每次都经历,我该怎么做?这是我正在阅读的XML:
<Location i="3808" lat="50.218" lon="-5.33" name="CAMBORNE" country="ENGLAND" continent="EUROPE" elevation="87.0">
<Period type="Day" value="2014-08-16Z">
<Rep D="WSW" F="11" G="18" H="91" Pp="0" S="4" T="11" V="VG" W="1" U="1">360</Rep>
<Rep D="WNW" F="15" G="11" H="73" Pp="1" S="9" T="16" V="VG" W="3" U="1">540</Rep>
<Rep D="WNW" F="14" G="18" H="66" Pp="3" S="13" T="17" V="VG" W="3" U="4">720</Rep>
<Rep D="W" F="15" G="18" H="67" Pp="5" S="13" T="17" V="VG" W="7" U="5">900</Rep>
<Rep D="W" F="13" G="20" H="75" Pp="34" S="13" T="16" V="VG" W="7" U="1">1080</Rep>
<Rep D="WSW" F="12" G="18" H="83" Pp="7" S="9" T="14" V="VG" W="7" U="0">1260</Rep>
</Period>
<Period type="Day" value="2014-08-17Z">
<Rep D="W" F="12" G="20" H="83" Pp="38" S="11" T="14" V="VG" W="7" U="0">0</Rep>
<Rep D="W" F="12" G="18" H="85" Pp="8" S="11" T="14" V="VG" W="7" U="0">180</Rep>
<Rep D="W" F="12" G="20" H="86" Pp="53" S="11" T="14" V="VG" W="12" U="1">360</Rep>
<Rep D="WNW" F="13" G="22" H="79" Pp="30" S="16" T="16" V="VG" W="7" U="1">540</Rep>
<Rep D="WNW" F="13" G="25" H="87" Pp="53" S="16" T="16" V="GO" W="10" U="4">720</Rep>
<Rep D="NW" F="14" G="25" H="66" Pp="7" S="16" T="17" V="VG" W="3" U="3">900</Rep>
<Rep D="WNW" F="13" G="22" H="67" Pp="1" S="13" T="16" V="VG" W="1" U="2">1080</Rep>
<Rep D="WNW" F="12" G="16" H="79" Pp="1" S="9" T="14" V="VG" W="2" U="0">1260</Rep>
</Period>
<Period type="Day" value="2014-08-18Z">
...
</Period>
</Location>
以下是我想要阅读的内容,但我不想更改文件本身:
<Location i="3808" lat="50.218" lon="-5.33" name="CAMBORNE" country="ENGLAND" continent="EUROPE" elevation="87.0">
<Rep D="WSW" F="11" G="18" H="91" Pp="0" S="4" T="11" V="VG" W="1" U="1">360</Rep>
<Rep D="WNW" F="15" G="11" H="73" Pp="1" S="9" T="16" V="VG" W="3" U="1">540</Rep>
<Rep D="WNW" F="14" G="18" H="66" Pp="3" S="13" T="17" V="VG" W="3" U="4">720</Rep>
<Rep D="W" F="15" G="18" H="67" Pp="5" S="13" T="17" V="VG" W="7" U="5">900</Rep>
<Rep D="W" F="13" G="20" H="75" Pp="34" S="13" T="16" V="VG" W="7" U="1">1080</Rep>
<Rep D="WSW" F="12" G="18" H="83" Pp="7" S="9" T="14" V="VG" W="7" U="0">1260</Rep>
<Rep D="W" F="12" G="20" H="83" Pp="38" S="11" T="14" V="VG" W="7" U="0">0</Rep>
<Rep D="W" F="12" G="18" H="85" Pp="8" S="11" T="14" V="VG" W="7" U="0">180</Rep>
<Rep D="W" F="12" G="20" H="86" Pp="53" S="11" T="14" V="VG" W="12" U="1">360</Rep>
<Rep D="WNW" F="13" G="22" H="79" Pp="30" S="16" T="16" V="VG" W="7" U="1">540</Rep>
<Rep D="WNW" F="13" G="25" H="87" Pp="53" S="16" T="16" V="GO" W="10" U="4">720</Rep>
<Rep D="NW" F="14" G="25" H="66" Pp="7" S="16" T="17" V="VG" W="3" U="3">900</Rep>
<Rep D="WNW" F="13" G="22" H="67" Pp="1" S="13" T="16" V="VG" W="1" U="2">1080</Rep>
<Rep D="WNW" F="12" G="16" H="79" Pp="1" S="9" T="14" V="VG" W="2" U="0">1260</Rep>
...
</Location>
我不想经历所有时期,然后经历每个时段内的所有代表,我只是想立即获得所有代表。例如,我想这样做:
foreach(rep in location)
而不是:
foreach(period in location)
foreach(rep in period)
不编辑文件。另外,如果我这样做,我怎样才能找出代表来自哪个时期?感谢
答案 0 :(得分:0)
如果您使用Linq to XML,您可以使用Descendants
方法选择这样的Rep
个节点:
var reps = xml.Descendants("Rep");
答案 1 :(得分:0)
这对我有用,循环遍历节点。
var doc = new XDocument(XDocument.Load("XML.xml"));
foreach (var item in doc.Descendants("Rep"))
{
// Do something with the node
}