2012-02-27 71 views
0

我一直在尝试将XML feed转换为人类可读形式,但没有成功。我曾尝试看到在tutorails部分给出的例子,但它太复杂。请有人可以帮我解决问题。我可以做得很好,直到解析XML。使用谷歌脚本解析XML数据

我使用谷歌脚本,输出必须在谷歌文档。

这里是我想出了到现在为止

var response = UrlFetchApp.fetch("http://getRecords.php?oauth_token=3e73c7&lat="+lat+"&lon="+lon+"&searchFor="+text+"&miles=100&response_type=xml"); 

    var doc = Xml.parse(response.getContentText(), true) 
var root = doc.getElement(); 
var entryList = "<ul>\n"; 

var entries = root.getElements("details"); 

    for (var i=0; i<entries.length; i++) { 
    var e = entries[i]; 
    var name = e.getElement("name").getText(); 

    } 



    entryList += "<li>name </li>" + name; 


    entryList += "</ul>\n"; 
    return entryList; 

这里是XML

<record> 
<details> 
<id>212929</id> 
<distance>0</distance> 
<category cat="8" sub="202" id="1201">General</category> 
<name>Text Book Center</name> 
<short_desc>One of Kenya's finest</short_desc> 
<long_desc> 
One of Kenya's leading bookshops, the Text Book Center offers a wide selection of titles. There is everything here from textbooks to fiction to the latest Information Technology titles. The range of maps is especially impressive. The shop is spacious and cool, giving shoppers plenty of room to browse the shelves upon shelves of books. Look out for the regular special offers. 
</long_desc> 
<address> 
<address1>Kijabe Street</address1> 
<city>Nairobi</city> 
<country>Kenya</country> 
<latitude>0</latitude> 
<longitude>0</longitude> 
</address> 
<neighborhood>Downtown</neighborhood> 
<phone>+254 2 330 340</phone> 
<email>[email protected]</email> 
<open_hours>8am-1pm; 2pm-5.30pm Mon-Sat.</open_hours> 
</details> 
</record> 
</records> 

我如何删除标签和刚打印出来的文档。请帮助

谢谢

+0

我认为XML被设计为人类可读了。你想重新格式化它吗? – 2012-02-27 15:25:08

+0

嗨,这是使用谷歌脚本和输出必须在谷歌文档。我需要打印出来没有XML标签。有人能指出我如何去感谢这个 – 2012-02-28 05:11:01

回答

1

看起来根节点开放标记丢失。它是原始文档吗?或者只是粘贴错误?

尝试这样

var response = UrlFetchApp.fetch("http://getRecords.php? oauth_token=3e73c7&lat="+lat+"&lon="+lon+"&searchFor="+text+"&miles=100&response_type=xml"); 
var doc = Xml.parse(response.getContentText(), true); 
var records = doc.records.getElements("record"); 
var entryList = "<ul>\n"; 

for (var i=0; i < records.length; i++) { 
    var details = records[i].details; 
    var name = details.name.getText(); 
    entryList += "<li>" + name + "</li>\n"; 
} 

entryList += "</ul>\n"; 
return entryList; 
+0

谢谢。它的一个粘贴错误 – 2012-03-01 04:55:39

+0

是我的解决方案回答你的问题?那么你可以接受为答案。 – arunes 2012-03-01 06:03:04

+0

no arunes我getErrors(“记录”)它显示TypeError:无法找到对象XmlDocument函数getElements。 (第14行) – 2012-03-01 09:37:13