How to structure the data using webread
76 views (last 30 days)
Show older comments
Jorge Luis
on 15 Jul 2024 at 12:12
Edited: Jorge Luis
on 17 Jul 2024 at 18:08
Hi, I will have to automatize a procedure to extract data from different URLs, One example of the URL link is the following:
url='https://earthquake.usgs.gov/fdsnws/event/1/query?format=quakeml&eventid=us6000n8tq',
data=webread(url);
The variable data has a huge amount of information that I would like to structure in order to access and retrieve the data easily without the need of creating a xml file.
I would appreciate the help.
0 Comments
Accepted Answer
Ayush Aniket
on 16 Jul 2024 at 5:25
Edited: Ayush Aniket
on 16 Jul 2024 at 5:55
Hi Jorge,
To retrieve specific data from the XML file, you can use regexp on the string output of webread function. Refer the following MATLAB answer for an example: https://www.mathworks.com/matlabcentral/answers/883153-how-to-extract-the-data-from-webread-output
You may also refer the following link to understand more about the regexp function: https://www.mathworks.com/matlabcentral/answers/402062-help-using-regexp?#answer_321487
More Answers (1)
Anshuman
on 16 Jul 2024 at 8:38
First you can parse the data to xmlData:
% Convert the data from char to XML DOM
xmlData = xmlreadstring(data);
You can use XPath queries to extract specific elements from the XML data:
% Create an XPath factory and compile the XPath expression
factory = javax.xml.xpath.XPathFactory.newInstance;
xpath = factory.newXPath;
% Extract magnitude
magnitudeExpression = xpath.compile('//magnitude/mag/value');
magnitudeNode = magnitudeExpression.evaluate(xmlData, javax.xml.xpath.XPathConstants.NODE);
magnitude = str2double(magnitudeNode.getTextContent);
This way you can extract the specific data like magnitude and any other information as needed.
2 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!