這裏的問題是:轉換的jQuery對象返回的XmlDocument
我遍歷一組節點,並根據自己的類型,我想使用jQuery的XSLT插件。
var options = {
type: "POST",
url: "api/dosomething/usefull",
data: "orderid=12345",
success: function(response) {
$(response).find("group").each(function() {
if ($(this).attr(type) == "X") {
$.xslt({xml: $(this), xslUrl: 'xsl/order/x_group.xsl', xslCache: false, callback: function(data){
//do something usefull with the transformed data
}});
} else {
$.xslt({xml: $(this), xslUrl: 'xsl/order/other_group.xsl', xslCache: false, callback: function(data){
//do else with the transformed data
}});
}
})
}
};
問題是,xslt插件需要一個JavaScript文檔對象。如何將每個函數的結果轉換回文檔? $(this).text()將去除所有內部xml標籤。 $(this).html()也不起作用,因爲jQuery下的XML不支持。顯然使用這個作爲參數(ofcourse)會觸發一個錯誤。
替代considerd:
- 使用JavaScript內置的文檔剖析功能以減少文件,我們需要的節點,然後通過XSLT解析器拋出下襬。鑑於jQuery的易用性,我寧願不這樣做。
- 將整個文檔放到xslt解析器中並在xslt中解決。如果解析器(或者我們所定位的瀏覽器中的xslt解析器而不是plul)支持xsl:import,這將是一個選項。我們需要使用$(this).get(0)重用這些XSLT的
- 我可以創建一個新的文件,如果只有我知道如何讓內部字符串表示...
您應該將編輯進入一個答案,然後在一對夫婦接受那麼這個問題就會關閉。 – RedWolves 2009-11-04 15:19:31
是啊,對不起,這是我第一次使用這個網站提出一個問題...總共n00b在這裏;) – 2009-11-04 15:24:25