Hướng dẫn javascript parsexml - cú pháp cú pháp javascript

Tôi đang cố gắng để có một phần của tệp XML vào mảng JavaScript. Tôi đã thử nhiều hướng dẫn, nhưng tôi không thể làm cho nó hoạt động. Đây là phần của tệp XML tôi muốn sử dụng:

    
      hello
      goodbye
    

Tôi muốn sử dụng câu trả lời trong một mảng javascript như:

var FAnswers = new Array("hello","goodbye");

Có ai, ai biết một JavaScript nhỏ đơn giản làm công việc không?

hỏi ngày 22 tháng 1 năm 2012 lúc 13:53Jan 22, 2012 at 13:53

2

Chức năng sau đây nên thực hiện thủ thuật:

function get_answers_from_xml_string(xml_string) {
    // Parse the XML string into a XMLDocument
    var doc = window.DOMParser
                ? new DOMParser().parseFromString(xml_string, 'text/xml')    // Standard
                : new ActiveXObject('Microsoft.XMLDOM').loadXML(xml_string); // IE

    // Find the answer nodes
    var answers_nodes = doc.getElementsByTagName('answer');
    var answers = [];

    // Loop through them and save their text content into an array
    for (var i = 0; i < answers_nodes.length; i++) {
        answers.push(answers_nodes[i].firstChild.data)
    }

    return answers;
}

Chỉ cần chuyển nó một chuỗi chứa XML với câu trả lời và nó sẽ trả về một mảng:

var xml_string = 'hellogoodbye';
var answers = get_answers_from_xml_string(xml_string);
// answers == ["hello", "goodbye"]

Đã trả lời ngày 22 tháng 1 năm 2012 lúc 14:11Jan 22, 2012 at 14:11

Hướng dẫn javascript parsexml - cú pháp cú pháp javascript

Jakub Roztociljakub RoztocilJakub Roztocil

15.6K4 Huy hiệu vàng49 Huy hiệu bạc51 Huy hiệu Đồng4 gold badges49 silver badges51 bronze badges

3

Vì vậy, bạn cần phân tích XML trong JavaScript. Hãy xem ví dụ này tôi vừa thực hiện:

// Some XML, say loaded with AJAX, etc.
var str = 'hellogoodbyeTest data';

var parser, xml;
if (window.DOMParser) {
    parser = new DOMParser();
    xml = parser.parseFromString(str, 'text/xml');
}
else { // IE
    xml = new ActiveXObject('Microsoft.XMLDOM');
    xml.async = false;
    xml.loadXML(str);
}

var nodes = xml.getElementsByTagName('answer');

var i, l = nodes.length, answers = [];
for (i = 0; i < l; i++) {
    answers.push(nodes[i].childNodes[0].nodeValue);
}

console.log(answers) // ["hello", "goodbye"]

Đã trả lời ngày 22 tháng 1 năm 2012 lúc 14:11Jan 22, 2012 at 14:11

Jakub Roztociljakub Roztocildfsq

15.6K4 Huy hiệu vàng49 Huy hiệu bạc51 Huy hiệu Đồng24 gold badges232 silver badges252 bronze badges

Vì vậy, bạn cần phân tích XML trong JavaScript. Hãy xem ví dụ này tôi vừa thực hiện:

// get XML 
var xml = xhr.responseXML;
var target = new Array();

// get answers
var answers= xml.getElementsByTagName("answer");
for (var i = 0; i < answers.length; i++) {   
    target.push(answers[i].nodeValue);
}  

Đã trả lời ngày 22 tháng 1 năm 2012 lúc 14:11Jan 22, 2012 at 14:11

Jakub Roztociljakub RoztocilMartin

15.6K4 Huy hiệu vàng49 Huy hiệu bạc51 Huy hiệu Đồng6 gold badges29 silver badges47 bronze badges

How about this way: The simplest - 

 var xml = "hellogoodbye";
    document.write (xml);
    var doc = document.getElementsByTagName('answer');
    var arrayAnswers = [];
    for(var i=0, len = doc.length; i < len; i++)
    {
       arrayAnswers.push(doc[i]);
    }
    alert(arrayAnswers[0].innerHTML);
    alert(arrayAnswers[1].innerHTML);

Vì vậy, bạn cần phân tích XML trong JavaScript. Hãy xem ví dụ này tôi vừa thực hiện:Jan 22, 2012 at 14:20

DFSQDFSQLiam

189K24 Huy hiệu vàng232 Huy hiệu bạc252 Huy hiệu Đồng21 silver badges36 bronze badges

Theo câu trả lời cho câu hỏi này, bạn cần phải làm điều gì đó như thế (giả sử bạn tải XML của mình qua XHR):

Martinmartin

Roble Ave S1400 649 37.45127 -122.18032 0.04 94025 Menlo Park 081 San Mateo CA California US

3.9006 huy hiệu vàng29 Huy hiệu bạc47 Huy hiệu đồng

if (window.DOMParser)
{
    parser = new DOMParser();
    xmlDoc = parser.parseFromString(txt, "text/xml");
}
else // Internet Explorer
{
    xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async = false;
    xmlDoc.loadXML(txt);
}

Đã trả lời ngày 22 tháng 1 năm 2012 lúc 14:20

//Gets house address number
xmlDoc.getElementsByTagName("streetNumber")[0].childNodes[0].nodeValue;

//Gets Street name
xmlDoc.getElementsByTagName("street")[0].childNodes[0].nodeValue;

//Gets Postal Code
xmlDoc.getElementsByTagName("postalcode")[0].childNodes[0].nodeValue;

Liamliam


2.82121 Huy hiệu bạc36 Huy hiệu đồng

Tôi đoán từ câu hỏi cuối cùng của bạn, đã hỏi 20 phút trước câu hỏi này, rằng bạn đang cố gắng phân tích (đọc và chuyển đổi) XML được tìm thấy thông qua việc sử dụng FindNearestAddress của Geonames.

Nếu XML của bạn nằm trong một biến chuỗi gọi là

var FAnswers = new Array("hello","goodbye");
1 và trông như thế này:

var FAnswers = new Array("hello","goodbye");
0