2012-03-20 11 views
1

jqueryを使用して外部HTMLページの本体にアクセスしようとしています。そのページの本文にはXML構造が含まれています。これをさらにデータにアクセスするためにJSONに変換したいと思います。 http://www.thomasfrank.se/xml_to_json.htmljQueryのアクセス本体がhtml内にあり、jsonに変換されません。

$.ajax({   
      url:'http://pruebanico.comze.com/testxml.html', 
      dataType:'html', 
      type:'POST', 
      timeout:20000, 
      success:function(response, status) {   

       var xmlDoc = $.parseXML(response); 
       xmlBody = xmlDoc.find('body'); 
       alert(xmlBody); 
       var jsonString = xml2json(xmlBody, '', html); 
       alert(jsonString); 

} 

私は、次のxml2jsonコンバーターを使用しています。

最初のアラート(xmlBody)は空です。私はxml2json関数の入力として有効なXML構造体の本文のテキストコンテンツを解析したいと思いましたが、大成功はしませんでした。

+0

ajaxリクエストを別のドメインからhttp://pruebanico.comze.comに送信していますか? 「はい」の場合、セキュリティ上の制約のために動作しません。これに関する詳細:http://stackoverflow.com/questions/7638773/cross-domain-requests-with-jquery –

+0

ドメインの問題はありません。私は携帯電話のphonegap経由でドメインの制限をオーバーライドしています。 – nicBBB

答えて

1

あなたがxmlDoc代わりのxmlを使用しているので、あなたがタイプミスを持っている(と方法で、これはスクリプトが実行されているページの本体である)

 var xml = $('body'); 

    var jsonString = xml2json(xmlDoc, '', html); 

とあなたが作ることができないことを覚えておいてください呼び出し:

url:'http://pruebanico.comze.com/testxml.html', 

スクリプトは同じドメイン

EDIT上で実行されていない限り - あなたは

を試みることができます
var xmlDoc = $.parseXML(xml); 
xmlBody = $(xmlDoc).find('body'); 
+0

jquery mobileでphonegapを使用しているため、ドメインに問題はありません。ボディセレクタがオブジェクトを返し、xml2jsonに文字列が必要なので、ボディオブジェクトを文字列に変換するにはどうすればよいですか?私は何とかbodyオブジェクトをxmlDoc文字列に変換する追加のステップが必要です。 – nicBBB

+0

@nicBBBボディータグ –

+0

のボディーセレクターにhtmlを追加すると、html(htmlがxmlであるためxmlです)を返す$( 'body').html()を使用する必要があります。 htmlを使用していますが、先ほど指摘したように、スクリプトが実行されているページのhtml。ajax呼び出しの応答の本体を取得する方法は? – nicBBB

関連する問題