1
はここに私のXMLです:解析XMLのGoogle Appsスクリプトの
<?xml version="1.0" encoding="UTF-8" ?>
<response>
<records>
<record id='1'>
<column name="Name"><value><![CDATA[John]]></value></column>
<column name="Email"><value><![CDATA[[email protected]]]></value></column>
</record>
<record id='2'>
<column name="Name"><value><![CDATA[Joe]]></value></column>
<column name="Email"><value><![CDATA[[email protected]]]></value></column>
</record>
</records>
</response>
そして、ここでは上記のXMLを解析し、配列として名前とメールアドレスを返すために私の試みです:
var document = XmlService.parse(the_above_xml);
var root = document.getRootElement();
var atom = XmlService.getNamespace('http://www.w3.org/2005/Atom');
var records_all = document.getRootElement().getChildren('records', atom);
for (r=0; r<records_all.length; r++){
var records = records_all[i].getChildren('record', atom);
for (i=0; i< records.length; i++){
columns = records[i].getChildren('column', atom);
for (c=0; c< columns.length; c++){
// I'm stuck here. I want to return an array of name and emails.
}
}
}
私が通過つもりでしたhttps://developers.google.com/apps-script/reference/xml-service/とそれを達成する方法を理解できませんでした。どうすれば修正できますか?
function getRecords(xml) {
var xmlDoc = XmlService.parse(xml);
var response = xmlDoc.getRootElement();
var records = response.getChild('records');
var recordList = records.getChildren('record');
var output = [];
for (var i = 0, record; record = recordList[i]; i++) {
var columnList = record.getChildren('column');
var name = '';
var email = '';
for (var j = 0, column; column = columnList[j]; j++) {
var attrName = column.getAttribute('name').getValue();
var text = column.getChild('value').getText();
if (attrName === 'Name') {
name = text;
} else if (attrName === 'Email') {
email = text;
}
}
output.push([name, email]);
}
return output;
}
この関数は、名前とメールアドレスのペアである配列の各行で、あなたのXMLをされ、文字列引数を取り、2次元配列を返しますについてどのように
ここでは実際にWebアプリケーションを使用していません。これはプログラミングに関する質問です。[so]で尋ねるべきです。 –
Googleアプリはウェブアプリとは見なされませんか?私はGoogle Appsスクリプトを使用しています。理解できません。 –
xmlはテキストスニペットか、URLエンドポイントにありますか? –