2016-02-23 78 views
0

我一直在瀏覽一段時間的計算器,還沒有找到適合我的問題的答案 - 我想在我點擊一個按鈕時加載到我的xml文件的某個部分。我想將我的xml文件的一部分加載到'contents'div中。使用jQuery加載xml文件

這是我的HTML代碼:

<div> 
    <input type="button" id="click"/> 
    <div id="content"> 

    </div> 
</div> 

這是我的XML:

<?xml version="1.0" encoding="utf-8"?> 
<books> 
    <book id="jeff"> 
    <author>Jeffrey </author> 
    <title>Books 1</title> 
</book> 
<book id="jerry"> 
    <author>Jerry</author> 
    <title>Books 2</title> 
</book> 
<book id="jimmy"> 
    <author>Jimmy</author> 
    <title>Boks 3</title> 
</book> 
<book id="jem"> 
    <author>Jem</author> 
    <title>Books 4</title> 
</book> 
</books> 

我曾經嘗試這樣做(我知道這還遠遠沒有正確的 - 所以沒有恨請):

$(document).ready(function() { 
$('#click').click(function(){ 
    $.ajax({ 
     url : 'books.xml', 
     dataType : 'xml', 
    success : parse, 
    }); 

    function parse(xml){ 
    $('#content').append($(xml).find('authour').text()); 
     } 
    }); 
}); 

如何使用jQuery訪問每個authours id規範。 (對不起,如果我搞砸解釋!:))。

+0

http://stackoverflow.com/questions/1773550/convert-xml -json-and-back-using-javascript - 這可能對你有所幫助。將您的xml更改爲json,然後遍歷它。 –

+0

@MaciejKwas不需要轉換爲json只是爲了讀取xml和pars到html – charlietfl

+0

所以你有什麼嘗試。你可以加載xml文檔並將其存儲到變量中嗎?你可以循環使用文檔嗎? – epascarello

回答

1

可以使用jQuery加載xml,其格式爲$.ajax,$.get,$.post。 一旦你使用jQuery它有一個方法$.parseXML

$.ajax({url: 'file.xml', method: 'GET', dataType: 'xml'}).done(function (xml) { 
    var xmlDoc = $.parseXML(xml); 
    var author = $(xmlDoc).find('book[id="jem"]').find('author'); 
    $('#content').append('<span>' + author.text() + '</span>'); 
}); 

服務器應該在這種情況下,用正確的MIME類型Content-type: "text/xml"迴應

+0

我會如何輸出到內容div,我將如何選擇特定ID的作者,如傑夫,傑裏吉米等 –

+0

您可能想要創建一些HTML附加到你想要的地方,我會編輯 – Raulucco

+0

替換文件.xml與books.xm - l(這是實際文件的名稱),但仍然沒有返回,謝謝你的幫助。 –