1

这是数据流,(希望我正确地显示了这一点,我花了很长时间才弄清楚)。我只是想提取标题只是为了看看我是否可以让它工作。我显然迷路了,不明白为什么我不断收到错误。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <items total="475974">
        <link href="https://www.sciencebase.gov/catalog/items?
            max=1&amp;s=Search&amp;q=water&amp;format=xml" 
            rel="self" />
        <link href="https://www.sciencebase.gov/catalog/items?
            max=1&amp;s=Search&amp;q=water&amp;format=xml&amp;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>

这是我的代码:

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);
}
4

1 回答 1

2

我总是使用工具来查看 XML。如果你需要一个,在 Chrome 中,我使用XML Tree扩展。安装它,访问您的测试 URL,您将看到可扩展和可折叠的格式化 XML(就像 IE :) 并且可以轻松查看结构。

这是您的代码,带有一些模组和轻松的旁白:

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());
  }
}

记录以下 10 个标题:

Reconnaissance of the water resources of Beaver County, Oklahoma
..
Water resources data, Oklahoma, water year 2004; Volume 2. Red River basin

希望这会有所帮助,如果您需要进一步澄清,请告诉我。

于 2012-06-15T00:53:05.643 回答