2016-05-16 17 views
5

react-nativeでモバイルアプリケーションを開発していますが、XMLを返すodataサービスを呼び出す必要があり、それをjsonオブジェクトに変換する必要があります。反応ネイティブのXMLレスポンスの使い方

どうすればよいですか?

return fetch(url, { 
     method: 'GET', 
     headers: { 
     Authorization: config.api.auth, 
     }, 
    }) 
     .then(response => response.json()) 
     // .then(response => response.text()) 
     // .then(xml => _xmlToJson(xml)) 
     .then(json => dosomething(json)) 
     .catch(ex => showError(ex)); 
    }; 

は私の代わりにjson()text()を取得し、jsonxmlを変換しますが、問題は方法がxml objectが、text()返す文字列を必要とすることで、他の方法にそれを渡そうとしました、と私はreact-nativeで方法を見つけることができませんでしたstringxmlに変換する。

p.s. React NativeはJavaScriptCoreを使用しているため、ブラウザオブジェクトモデルやドキュメントオブジェクト、ウィンドウなどは使用できません。

答えて

1

ノードレルム内にある任意のxml2jsライブラリを使用できます。たとえば、https://github.com/Leonidas-from-XIV/node-xml2js

ダニエル・シュミットの答えが正しいですが、私はこの資料に記載されている方法を使用
+1

は私がスクリプト「ノード-GYPのrebuild''をインストール[email protected]に失敗しました '、それをインストールするには、このエラーを取得し、私はそれを解決することができませんでした:( – RezaRahmati

+0

申し訳ありませんが、私が選びました違うもの。私は答えを編集しました、この1つを見てください –

+0

はい、私は昨日それを発見し、jsonに変換するが、出力jsonオブジェクトは良くない、それは配列に値を変換するので、私は必要な単純な文字列を取得する配列から読み込みます。ちょうど – RezaRahmati

1

Build a YouTube playlist browser with React Native and Siphon

npm install xmldom 

var DOMParser = require('xmldom').DOMParser; 

parseVideos: function(s) { 
    console.log('Parsing the feed...'); 
    var doc = new DOMParser().parseFromString(s, 'text/xml'); 
    var objs = []; 
    var videos = doc.getElementsByTagName('yt:videoId'); 
    var thumbs = doc.getElementsByTagName('media:thumbnail'); 
    for (var i=0; i < videos.length; i++) { 
    objs.push({ 
     id: videos[i].textContent, 
     thumbnail: thumbs[i].getAttribute('url') 
    }) 
    } 
    this.setState({videos: objs}); 
}, 
関連する問題