[英]Google App Script: extract data from a XML file
我需要將此XML結構提取到Google電子表格中,
<directory>
<fieldset>
<field id="displayName">Display name</field>
<field id="firstName">First name</field>
</fieldset>
<employees>
<employee id="200">
<field id="displayName">Donald Duck</field>
<field id="firstName">Donald</field>
</employee>
</employees>
</directory>
我已經刪除了所有<field id>
,但是我只需要<employee id>
,我不知道該怎么做,對不起,我對XML沒有任何了解,所以請幫助我。
function ImportXML() {
var url = "https://api.Fake.com/employees/directory";
var response = UrlFetchApp.fetch(url, params);
var xml = response.getContentText();
var doc = XmlService.parse(xml);
var root = doc.getRootElement();
logChildren(doc.getRootElement().getChildren());
function logChildren(elements){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
for (var i = 0; i < elements.length; i++) {
var range = sheet.getRange(1,i+1);
range.setValue(elements[i].getText());
if(elements[i].getContentSize() > 1){
var children = elements[i].getChildren();
logChildren(children);
}
}
}
謝謝你的幫助。
有關使用appscript讀取特定節點的信息,請查閱此文檔
getChild(名稱)
獲取具有給定名稱且沒有名稱空間的第一個Element節點,該名稱空間是此Element節點的直接子級。 如果沒有這樣的節點,則此方法返回null。
參量
名稱類型說明name字符串子元素的名稱元素節點返回
Element — Element節點;如果不存在具有給定名稱且沒有名稱空間的直接子Element節點,則為null
使用此工作示例作為指導。
function readSpecificNode() {
var url = 'https://www.w3schools.com/xml/books.xml';
var xml = UrlFetchApp.fetch(url).getContentText();
var document = XmlService.parse(xml);
var entries = document.getRootElement().getChild('book').getChild('title').getAttribute('lang').getValue();
Logger.log(entries);
}
只是不要忘記將url
更改為指定的xml,並將getChild
元素從“ book”,“ title”和“ lang”更改為“ directory”,“ employees”,“ employee”,然后將getAttribute
設置為“ id”,將適合您所需的輸出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.