私が取り組んでいる小さなコードに助けを求めています。 しかし、私はAJAXとJqueryでうまくいきません。だから私の話題は:外部XMLファイル(ここではtext.xml)を使ってXMLを取得し、それをDavid WalshのコードでJSONオブジェクトに解析したかったのです(ここにソース:https://davidwalsh.name/convert-xml-json)。 それから、誰かがその機能が「成功」の部分にしかないと言いました。その理由は、私がその上で私のすべての機能を実行しているからです。 私の目標は、XMLをJSONオブジェクトに入れて、扱いやすいようにすることです。私の質問に答えるフォーラムのトピックがいくつか見つかりますが、コードは機能しません。ありがとうございました。 私のコードがあります:AJAXを使用してXMLを取得し、それをJSON(サーバーなし)に解析します
<HTML>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>testSelection</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
</head>
<body>
<body>
<div id="Div_XML"></div>
</body>
<script>
var xml = $.parseXML('<bds> <serie1 id="1"> <desc> <num> 2 </num><title>we are on 1 </title><commen>HI </commen><URL>Idk</URL></desc><desc><num> 1 </num><title>we are on 2 </title><commen>Hello world </commen><URL>Baptiste</URL></desc></serie1></bds>')
var results = new Array;
var obj = {};
$(document).ready(
function() {
$.ajax({
type: "GET",
url: "text.xml",
dataType: "xml",
success: function(xml) {
var commen = $(this).find('commen').text();
var title = $(this).find('title').text();
var URL = $(this).find('URL').text();
var num = $(this).find('num').text();
$(xml).find('bds').each(
function() {
results.push({
id: $(this).attr('id'),
num: num,
commen: commen,
title: title,
URL: URL});
});
// Changes XML to JSON
// Create the return object
function parseX(results){
if (results.nodeType == 1) { // element
// do attributes
if (results.attributes.length > 0) {
obj["@attributes"] = {};
for (var j = 0; j < results.attributes.length; j++) {
var attribute = results.attributes.item(j);
obj["@attributes"][attribute.nodeName] = attribute.nodeValue;
}
}
} else if (results.nodeType == 3) { // text
obj = results.nodeValue;
}
// do children
if (results.hasChildNodes()) {
for (var i = 0; i < results.childNodes.length; i++) {
var item = results.childNodes.item(i);
var nodeName = item.nodeName;
if (typeof(obj[nodeName]) == "undefined") {
obj[nodeName] = xmlToJson(item);
} else {
if (typeof(obj[nodeName].push) == "undefined") {
var old = obj[nodeName];
obj[nodeName] = [];
obj[nodeName].push(old);
}
obj[nodeName].push(xmlToJson(item));
}
}
}
// Assuming xmlDoc is the XML DOM Document
var jsonText = JSON.stringify(xmlToJson(results));
alert(jsonText);
}
}
)
};
}
}
)
</script>
</body>
</HTML>
だから私の考えはその後、JSONにそれを解析し、配列に私のxmlデータのすべてをプッシュすることでした。 質問があります:
- - あなたはDavid Walshのコードに配列を付けましたか?
- - AJAXの成功部分に複数の機能を追加できますか?
- - 私のJSONオブジェクトはシリーズで分割できますか? (私はserie1、serie2、serie3が表示された直後にxmlを与えます)
- - 数値(Jsonオブジェクト)と数値を比較しますか?私は、テストを行うためにVARのXMLを使用していた
私の初心者の質問のため申し訳ありません...
そしてtext.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<bds>
<serie1 id="1">
<desc>
<num> 1 </num>
<title>nous sommes sur le lien 1 </title>
<commen>Hello </commen>
<URL>Baptiste</URL>
</desc>
<desc>
<num> 2 </num>
<title>nous sommes sur le lien 2 </title>
<commen>HI </commen>
<URL>Baptiste</URL>
</desc>
<desc>
<num> 3 </num>
<title>nous sommes sur le lien 3 </title>
<commen>How are you </commen>
<URL>Gars inconnu</URL>
</desc>
<desc>
<num> 4 </num>
<title>nous sommes sur le lien 4 </title>
<commen>Idk </commen>
<URL>Raymond</URL>
</desc>
<desc>
<num> 5 </num>
<title>nous sommes sur le lien 5 </title>
<commen>Thank you </commen>
<URL>Eric</URL>
</desc>
<desc>
<num> 6 </num>
<title>nous sommes sur le lien 6 </title>
<commen>You're welcome </commen>
<URL>Baptiste</URL>
</desc>
<desc>
<num> 7 </num>
<title>nous sommes sur le lien 7 </title>
<commen>Sorry </commen>
<URL>Céline</URL>
</desc>
</serie1>
<serie2 id="2">
<desc>
<num> 1 </num>
<title>nous sommes sur le lien 1 </title>
<commen>Hello </commen>
<URL>Baptiste</URL>
</desc>
<desc>
<num> 2 </num>
<title>nous sommes sur le lien 2 </title>
<commen>HI </commen>
<URL>Baptiste</URL>
</desc>
<desc>
<num> 3 </num>
<title>nous sommes sur le lien 3 </title>
<commen>How are you </commen>
<URL>Gars inconnu</URL>
</desc>
<desc>
<num> 4 </num>
<title>nous sommes sur le lien 4 </title>
<commen>Idk </commen>
<URL>Raymond</URL>
</desc>
<desc>
<num> 5 </num>
<title>nous sommes sur le lien 5 </title>
<commen>Thank you </commen>
<URL>Eric</URL>
</desc>
<desc>
<num> 6 </num>
<title>nous sommes sur le lien 6 </title>
<commen>You're welcome </commen>
<URL>Baptiste</URL>
</desc>
<desc>
<num> 7 </num>
<title>nous sommes sur le lien 7 </title>
<commen>Sorry </commen>
<URL>Céline</URL>
</desc>
</serie2>
<serie3 id="3">
<desc>
<num> 1 </num>
<title>nous sommes sur le lien 1 </title>
<commen>Hello </commen>
<URL>Baptiste</URL>
</desc>
<desc>
<num> 2 </num>
<title>nous sommes sur le lien 2 </title>
<commen>HI </commen>
<URL>Baptiste</URL>
</desc>
<desc>
<num> 3 </num>
<title>nous sommes sur le lien 3 </title>
<commen>How are you </commen>
<URL>Gars inconnu</URL>
</desc>
<desc>
<num> 4 </num>
<title>nous sommes sur le lien 4 </title>
<commen>Idk </commen>
<URL>Raymond</URL>
</desc>
<desc>
<num> 5 </num>
<title>nous sommes sur le lien 5 </title>
<commen>Thank you </commen>
<URL>Eric</URL>
</desc>
<desc>
<num> 6 </num>
<title>nous sommes sur le lien 6 </title>
<commen>You're welcome </commen>
<URL>Baptiste</URL>
</desc>
<desc>
<num> 7 </num>
<title>nous sommes sur le lien 7 </title>
<commen>Sorry </commen>
<URL>Céline</URL>
</desc>
</serie3>
</bds>
(exemple用text.num == 1のように)ローカルでは動作しますが、ファイルからXMLを取得する必要があるときは、私は完全に失われています。 それから、私は、後で私のプロジェクトに書き込むために、JSONで使用することはできません。私はそれをJSONで書くことはできません。 ところで、私はXmlHTTPRequestとPHPを使用することはできませんそれを行うためのより良い、簡単な方法であることを知って... あなたは私の質問への答えを持っていて、読んでいただきありがとうと思います。
'parseX(results)'関数の定義は 'success'関数の外になければなりません。あなたが好きな場所で' parseX'関数を呼び出すことができ、作成した 'result object'の代わりにパスXMLオブジェクトが必要です。 – Srinu
私は成功部分に関数parseXを追加する必要がありますか?私は、それから配列の結果を与えます。私は – Jigghart
あなたに感謝しようとするたびに、私はSyntaxError:missing)引数リストの後に言った。そのエラーをデバッグするために私が何をすることができますか? – Jigghart