已經有許多問題已經問如何編寫XML解析器,主要用於網站或其它應用程序..技術用於在JavaScript編寫XML解析器
也有證明是有益的,包括其他教程:
http://www.switchonthecode.com/tutorials/xml-parsing-with-jquery
不過,我試圖寫的文件格式SBML解析器(系統生物學標記語言):
規格 - http://sbml.org/Documents/Specifications
我一直在嘗試對解析器進行硬編碼,而對於我的情況,它不適用於每個部分。
$(document).ready(function()
{
//alert("In function");
$.ajax({
type: "GET",
url: "sbml.xml",
dataType: "xml",
success: parseXml
});
});
function parseXml(xml) {
//alert("Xml loaded");
$("#output").append("Output loaded <br />");
$(xml).find("model").each(function() {
$("#output").append("Found model <br />");
//alert("Found model");
//alert($(this).attr("id"));
$(xml).find("listOfCompartments").each(function() {
//alert("Found list of compartments");
$("#output").append("List of Compartments found <br />");
$.each($(this).children(), function() {
var id = $(this).attr("id");
var size = $(this).attr("size");
//alert("Id: " + id + ", Size: " + size);
$("#output").append("Compartment <br />");
$("#output").append("Id: " + id + ", Size: " + size + "<br />");
});
});
});
}
由於規範是相當大的(8頁),是容易發生變化的,有沒有更好的方式來寫這樣的情況下,解析器?
是否有可能製作所有可能節點的數組並循環遍歷,而不是硬編碼所有內容。這會更有效率嗎?
在其他語言中有許多解析器,例如java和python,但似乎沒有用於製作Web應用程序的客戶端腳本端(我不想製作java servlet)。它是否在你的研究領域? – Sycren 2011-02-10 17:26:22
在這種情況下,我不認爲我希望瀏覽器爲我做這件事,我希望讓應用程序接受多個sbml文件,而不僅僅是一般情況。當你設計CML時,你是否也爲它創建了一個解析器?你介意我發給你一封電子郵件嗎? – Sycren 2011-02-10 19:17:33