使用javascript编写xml解析器的技术

问题描述 投票:0回答:2

已经有很多问题问如何编写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页)并且易于更改,是否有更好的方法编写这种情况的解析器?

将有可能使所有可能的节点组成一个数组并循环遍历而不是硬编码所有内容。这样会更有效吗?

[已经有很多问题问如何编写xml解析器,主要是针对网站或其他应用程序。还有其他一些有用的教程,包括:http:// www ....

jquery xml xml-parsing sbml
2个回答
1
投票

除非没有其他选择,否则请不要编写XML解析器。 XML规范中有很多事情(例如参数实体,内部子集等)必须解决,并且涉及很多。总有适合所有语言的解析器,您应该使用其中一种。


1
投票

浏览器可以解析XML,让它代您完成。浏览器XML解析可能是正确的,那么您只需要使用dom。

© www.soinside.com 2019 - 2024. All rights reserved.