how to find a specific value from a textfile(3000 lines), when the value keeps on changing its location in the file
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Punit Gandhi
el 11 de Mzo. de 2015
Comentada: Punit Gandhi
el 5 de Abr. de 2015
In my code, I have to download weather data every hour from the website ( http://api.met.no/weatherapi/locationforecast/1.9/?lat=52.37;lon=4.89;msl=1) I am able to do so but now i need to find the value for "cloudiness" for the time period 24 hours after it was downloaded. I just need numerical value of cloudiness. I tried getting that data by importing data from that specific cell, but the value keeps on changing its value location. So I need to update the cell location for every time I run my code.How should I get the exact numerical value.
For example: I want the cloudiness for the date "from="2015-03-12T11:00:00Z" to="2015-03-12T11:00:00Z"
The code goes like this:
<time datatype="forecast" from="2015-03-12T11:00:00Z" to="2015-03-12T11:00:00Z">
<location altitude="1" latitude="53.0500" longitude="4.8000">
<temperature id="TTT" unit="celsius" value="8.3"/>
<windDirection id="dd" deg="138.0" name="SE"/>
<windSpeed id="ff" mps="4.5" beaufort="3" name="Lett bris"/>
<humidity value="62.9" unit="percent"/>
<pressure id="pr" unit="hPa" value="1030.9"/>
*<cloudiness id="NN" percent="0.0"/>*
<fog id="FOG" percent="0.0"/>
<lowClouds id="LOW" percent="0.0"/>
<mediumClouds id="MEDIUM" percent="0.0"/>
<highClouds id="HIGH" percent="0.0"/>
<dewpointTemperature id="TD" unit="celsius" value="1.6"/>
</location>
</time>
<time datatype="forecast" from="2015-03-12T10:00:00Z" to="2015-03-12T11:00:00Z">
<location altitude="1" latitude="53.0500" longitude="4.8000">
<precipitation unit="mm" value="0.0" minvalue="0.0" maxvalue="0.0"/>
<symbol id="Sun" number="1"/>
</location>
</time>
<time datatype="forecast" from="2015-03-12T09:00:00Z" to="2015-03-12T11:00:00Z">
<location altitude="1" latitude="53.0500" longitude="4.8000">
<precipitation unit="mm" value="0.0" minvalue="0.0" maxvalue="0.0"/>
<symbol id="Sun" number="1"/>
</location>
</time>
<time datatype="forecast" from="2015-03-12T08:00:00Z" to="2015-03-12T11:00:00Z">
<location altitude="1" latitude="53.0500" longitude="4.8000">
<precipitation unit="mm" value="0.0" minvalue="0.0" maxvalue="0.0"/>
<symbol id="Sun" number="1"/>
</location>
</time>
<time datatype="forecast" from="2015-03-12T05:00:00Z" to="2015-03-12T11:00:00Z">
<location altitude="1" latitude="53.0500" longitude="4.8000">
<precipitation unit="mm" value="0.0" minvalue="0.0" maxvalue="0.0"/>
<symbol id="LightCloud" number="2"/>
</location>
</time>
This is one basic data in the file. Now i want to get numerical data (for cloudiness) in the line 10.
What will be the best way to read the particular data?
0 comentarios
Respuesta aceptada
Guillaume
el 11 de Mzo. de 2015
Since your document is an xml file, the most reliable way would be to use xml parsing and navigate the dom to find the information of interest:
xdom = xmlread('http://api.met.no/weatherapi/locationforecast/1.9/?lat=52.37;lon=4.89;msl=1');
cloudtags = xdom.getElementsByTagName('cloudiness');
cloudiness = cell(cloudtags.getLength, 3);
for item = 1 : cloudtags.getLength
cloudtag = cloudtags.item(item - 1);
cloudiness{item, 1} = str2double(cloudtag.getAttribute('percent'));
timetag = cloudtag.getParentNode.getParentNode;
cloudiness{item, 2} = char(timetag.getAttribute('from'));
cloudiness{item, 3} = char(timetag.getAttribute('to'));
end
cloudiness
4 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre String Parsing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!