2016-07-11 15 views
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次元配列を返しますについてどのように

+0

ここでは実際にWebアプリケーションを使用していません。これはプログラミングに関する質問です。[so]で尋ねるべきです。 –

+0

Googleアプリはウェブアプリとは見なされませんか?私はGoogle Appsスクリプトを使用しています。理解できません。 –

+0

xmlはテキストスニペットか、URLエンドポイントにありますか? –

答えて

関連する問題