Ionic with Angular 2では、jQueryを使用してXMLを解析し、要素値を取得しています。なぜXMLを解析して、要素がiOS 10.3.1で機能しないのですか?
以下は、私がgameIDを取得するために解析しているXMLです。
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ev="http://purl.org/rss/1.0/modules/event/" xmlns:s="http://sidearmsports.com/schemas/cal_rss/1.0/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>2017 Baseball Schedule</title><link>Original link here</link>
<atom:link rel="self" href="Original link here" />
<description> </description>
<item>
<title> Baseball at </title>
<description>Baseball at …</description>
<link> Original link here </link>
<s:gameid>1234</s:gameid>
<s:links>
<s:livestats>stats go here<s:livestats>
</s:links>
</item>
<item>
<title> Baseball at </title>
<description> Baseball at …</description>
<link> Original link here </link>
<s:gameid>1235</s:gameid>
<s:links>
<s:livestats>State go here<s:livestats>
</s:links>
</item>
</channel>
</rss>
後、私は構文解析のために使用しているコードです:私はブラウザと(10.3.1を除く)他のiOSバージョンで実行すると
this.http.get(urlToUse).subscribe((res) => {
var response = res.text();
response = response.replace(/^(\r\n)|(\n)/g,'');
let parsedXML = jQuery(jQuery.parseXML(response));
parsedXML.find('item').each(function() {
el = jQuery(this);
console.log("Schedule data");
console.log("el");
console.log(el.text());
gameId = el.find('gameid');
console.log("gameId");
console.log(gameId);
console.log(gameId.text());
});
});
、応答テキストは、すべての要素を示し、 GameIdコンソールは、すべてのgameIdも表示します。
10.3.1では、すべての要素を表示しますが、gameIdコンソールは空の行を表示します。
'gameid'はローカル名なので、どこでも正しい要素が選択されます。 find( 's:gameid')を見つけるためにfind( 'gameid')を置き換えようとしました。いいえ、運がない!
デバッグを行いましたか?代わりに、まず「タイトル」または「リンク」を印刷してみてください。 – wannadream
@wannadream、ご意見ありがとうございます。はい、他のフィールドはすべて抽出されています。 –
el.text()とは何ですか?あなたは値を掲示できますか? – wannadream