Reputation: 203
This is the data stream, (Hope I'm displaying this correctly, it took me forever to figure it out). I was just trying to extract the title just to see if I could get it to work. I obviously am lost and don't understand why I keep getting errors.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<items total="475974">
<link href="https://www.sciencebase.gov/catalog/items?
max=1&s=Search&q=water&format=xml"
rel="self" />
<link href="https://www.sciencebase.gov/catalog/items?
max=1&s=Search&q=water&format=xml&offset=1"
rel="next" />
<item id="4f4e4a62e4b07f02db6369dc">
<link href="https://www.sciencebase.gov/catalog/
item/4f4e4a62e4b07f02db6369dc" rel="self" />
<oldId>1800335</oldId>
<title>Reconnaissance of the water resources of Beaver County,
Oklahoma</title>
<summary>Ground water is the major source of water supply in Beaver
County. Because of the rapidly increasing demand for the limited
supply of water for irrigation, additional geologic and hydrologic
data are needed for management of ground-water resources...</summary>
</item>
</items>
And this is my code:
function myFunction() {
var response = UrlFetchApp.fetch("http://www.sciencebase.gov/catalog
/items?s=Search&q=water&format=xml&max=1").getContentText();
var parsedResponse = Xml.parse(response, true);
//I tried this but it didn't work
var title = parsedResponse.html.head.getElements("title");
Browser.msgBox(title);
}
Upvotes: 1
Views: 850
Reputation: 5601
I always use a tool to look at XML. If you need one, in Chrome, I use the XML Tree extension. Install it, visit your test URL and you'll see formatted XML that's expandable and collapsable (just like IE :) and makes it easy to see the structure.
Here's your code with some mods and light narration:
function myFunction() {
//note I've set max=10 here
var url="http://www.sciencebase.gov/catalog/items?s=Search&q=water&format=xml&max=10";
var response = UrlFetchApp.fetch(url).getContentText();
var parsedResponse = Xml.parse(response, true);
debugger; //You will see in the debugger that your 10 results are each XmlElements in the array parsedResponse.items.item[]
//iterate through the results
for (var i = 0; i < parsedResponse.items.item.length; i++) {
var result = parsedResponse.items.item[i];
//View > Logs... to see the title of each result
Logger.log(result.getElement("title").getText());
}
}
Logs the following 10 titles:
Reconnaissance of the water resources of Beaver County, Oklahoma
..
Water resources data, Oklahoma, water year 2004; Volume 2. Red River basin
Hope this helps, let me know if you need anything further clarified.
Upvotes: 2