2016-10-04 15 views
0

APIから要求されたXMLドキュメントから情報をプルするスクリプトを作成しようとし、2D配列に配置しようとしました。APIクエリからのドロップダウンリストの作成

<User> 
    <Id>Rdh9Rsi3k4U1</Id> 
    <UserName>[email protected]</UserName> 
    <FirstName>First</FirstName> 
    <LastName>Last</LastName> 
    <Active>true</Active> 
    <Email>[email protected]</Email> 
    <AccessLevel>Learner</AccessLevel> 
</User> 

のように各ユーザーを探して https://api.example.com/v1.svc/users?apikey=MY-KEY&source=MY-APP&limit=1000

XMLは、ユーザーごとに作成されたGETリクエストを作成する際に

は、互いの上に積み重ねられた同様の探して出力を備えています。どのようにこれを配列にスクラブすることができますか?例として、最初の配列には7つの「列」があり、すべての情報が各ユーザーに1行あります。 b

答えて

0

このような質問に対する答えを将来的に探している人には、わかりました。基本的には、私が到達しようとしていたAPI(例では「citrowske.com」ではない)がCORSまたはjsonpを許可していないことが分かりました。示され

は、私は(下記)を使用してしまったものと同様のコードの例である、here

これがどのように動作するかの基本的な説明を示したテストXMLファイルと一緒に、それはXMLファイルを取得するためにプロキシを使用しています"function(xml)"として見つかった "xml"として保存します。その後、XML文書が検索され、 "User"で始まる各セクションは "FirstName"と "LastName"データを取得し、 "yourdropdownbox"というHTMLセクションにドロップダウンに追加します。ノート、プロキシのよう

$.ajaxPrefilter(function (options) { 
 
    if (options.crossDomain && jQuery.support.cors) { 
 
    var http = (window.location.protocol === 'http:' ? 'http:' : 'https:'); 
 
    options.url = http + '//cors-anywhere.herokuapp.com/' + options.url; 
 
    //options.url = "http://cors.corsproxy.io/url=" + options.url; 
 
    } 
 
}); 
 

 
$.get(
 
    'http://citrowske.com/xml.xml', 
 
    function (xml) { 
 
     //console.log("> ", xml); 
 
     //$("#viewer").html(xml); 
 
     
 
//////////////////////////////////// 
 
var select = $('#yourdropdownbox'); 
 
\t \t select.append('<option value="">Select a User</option>'); \t \t \t \t 
 
\t \t $(xml).find('User').each(function(){ \t \t \t \t \t \t \t \t \t \t \t 
 
\t \t var FirstNames = $(this).find('FirstName').text(); 
 
\t var LastNames = $(this).find('LastName').text(); 
 
    
 
\t \t select.append("<option value='"+ FirstNames +"'>"+FirstNames+" "+LastNames+"</option>"); 
 
\t }); 
 
\t } 
 
//////////////////////////////////// 
 

 
);
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
 

 
<select id="yourdropdownbox"> 
 

 
</select>

極めて安全であるために知られているので、あなたがこれを使用するのかを見ていません。また

、私はそれを私がフォワードスラッシュの一番上の行の上

var firstnamesarray = ["0"]; 
    var lastnamesarry = ["0"]; 
    var i = 0; 

を加えた後、交換した可能性がありたびに追加の代わりに、配列にデータを有効にしたい場合:

var FirstNames = $(this).find('FirstName').text(); 
    var LastNames = $(this).find('LastName').text(); 

firstnamesarry[i] = $(this).find('FirstName').text(); 
    lastnamesarry[i] = $(this).find('LastName').text(); 
    i = i+1; 

と "select.append" まず&ラを置き換えますST名前は

firstnamearry[i] & lastnamearry[i] 

で、実施例を見るjsfiddleをチェックアウトするにはhere

関連する問題