2012-05-20 35 views
5

Tôi biết điều này đã được hỏi khoảng một triệu lần, tuy nhiên tất cả các tập lệnh mà tôi đã tìm thấy đều được ghi lại cho người đang đặt câu hỏi hoặc không làm việc gì cả! Về cơ bản tôi bị giới hạn sử dụng JavaScript bình thường thay vì một thư viện như JQuery như là một nhiệm vụ uni, tuy nhiên muốn lưu trữ để sử dụng trong tương lai vì đôi khi JQuery không phải lúc nào cũng là một tùy chọn.Đang tải tệp XML vào JavaScript Array

Dù sao cắt theo đuổi. Tôi có một tập tin XML được gọi là "profiles.xml", trong đó có một cấu trúc khá đơn giản:

<?xml version="1.0" encoding="iso-8859-1"?> 
<profiles> 
<profile id="1"> 
    <pic>images/profiles/person1/x.jpg</pic> 
    <name>Joe Bloggs</name> 
    <nickname>J-Bloggs</nickname> 
    <age>21</age> 
    <email>[email protected]</email> 
    <role>Web Site Manager</role> 
    <likes> 
      <like1>Food</like1> 
      <like2>Drink</like2> 
      <like3>Computing</like3> 
      <like4>Music</like4> 
    </likes> 
    <dislikes> 
      <dislike1>Rude People</dislike1> 
      <dislike2>Rude People</dislike2> 
    </dislikes> 
    <favwebsite>http://www.facebook.com</favwebsite> 
</profile> 
</profiles> 

Vì vậy, về cơ bản tôi muốn tải mỗi hồ sơ vào một mảng mới riêng biệt mỗi lần nó cần phải được truy cập nhưng ngoài để làm điều đó dựa trên giá trị thuộc tính "id". Điều này có thể không? Nếu thế thì sao? Tôi không còn thời gian để học các công cụ như XPATH vv ... Điều này cần phải được thực hiện bằng cách sử dụng JavaScript và chỉ có một mình không có kịch bản phía máy chủ nào được cho phép. Ngoài ra như đã đề cập một số kịch bản chỉ đơn giản là không làm việc như khi tôi cố gắng đưa nó vào chức năng nó nói lên rằng các biến nhất định không được xác định ngay cả khi chúng đã được thiết lập như vậy cần kịch bản để vượt qua tất cả các thông tin từ tệp XML vào Mảng mới và có thể truy cập dễ dàng trong toàn bộ tài liệu HTML.

Hãy giúp ai đó, tôi đã dành 4-5 tuần để tự mình làm việc này cũng như nhiều đêm không ngủ tìm kiếm trên mạng cho các tập lệnh có thể cho tôi một đầu mối!

Mọi trợ giúp đều được đánh giá cao! Cảm ơn :-)

+0

Bạn đã thử cái này chưa? http://www.openjs.com/scripts/xml_parser/ nó có vẻ như là một phương pháp rất chung chung. –

Trả lời

9

Trừ khi tôi không hiểu rõ vấn đề của bạn, mã JSFiddle/mã bên dưới sẽ hữu ích. Tôi đã sử dụng một mảng 2-d.

var profiles = xml.getElementsByTagName("profile"); 
var arr = []; 
for (var key in profiles){ 
    arr.push([]); 
    var nodes = profiles[key].childNodes; 
    for (var ele in nodes){ 
     if(nodes[ele]){ 
      arr[key].push(nodes[ele]); 
     } 
    } 
} 
console.log(arr); 
+0

Cảm ơn bạn !! Tôi sẽ thử nó nhưng có vẻ như nó sẽ hoạt động! :-) – GeordieDave1980

Các vấn đề liên quan