怎么用JavaScript生成xml

 

function XMLWriter()

{

    this.XML=[];

    this.Nodes=[];

    this.State=””;

    this.FormatXML = function(Str)

    {

        if (Str)

            return Str.replace(/&/g, “&”).replace(/\”/g, “””).replace(/, “/g, “>”);

        return “”

    }

    this.BeginNode = function(Name)

    {

        if (!Name) return;

        if (this.State==”beg”) this.XML.push(“>”);

        this.State=”beg”;

        this.Nodes.push(Name);

        this.XML.push(”     }

    this.EndNode = function()

    {

        if (this.State==”beg”)

        {

            this.XML.push(“/>”);

            this.Nodes.pop();

        }

        else if (this.Nodes.length>0)

            this.XML.push(“”+this.Nodes.pop()+”>”);

        this.State=””;

    }

    this.Attrib = function(Name, Value)

    {

        if (this.State!=”beg” || !Name) return;

        this.XML.push(” “+Name+”=\””+this.FormatXML(Value)+”\””);

    }

    this.WriteString = function(Value)

    {

        if (this.State==”beg”) this.XML.push(“>”);

        this.XML.push(this.FormatXML(Value));

        this.State=””;

    }

    this.Node = function(Name, Value)

    {

        if (!Name) return;

        if (this.State==”beg”) this.XML.push(“>”);

        this.XML.push((Value==”” || !Value)?””:””+this.FormatXML(Value)+””+Name+”>”);

        this.State=””;

    }

    this.Close = function()

    {

        while (this.Nodes.length>0)

            this.EndNode();

        this.State=”closed”;

    }

    this.ToString = function(){return this.XML.join(“”);}

}

 

 

XMLWriter 有以下几个方法:

BeginNode (Name) 
EndNode () 
Attrib (Name, Value) 
WriteString (Value) 
Node (Name, Value) 
Close () 
ToString () 
BeginNode 输出一个标签:

XML.BeginNode(“Foo”);

XML.BeginNode(“Foo”);
XML.Attrib(“Bar”, “Some Value”);

WriteString 方法:

XML.Node(“MyNode”, “My Value”);
//Produces: 

My Value

XML.BeginNode(“Foo”);
XML.WriteString(“Hello World”);
XML.EndNode();
//Produces 

Hello World

Node 方法:
XML.EndNode();
//Produces: 

 

eg:

 

 

 

 

 


function WriteTest()

        {

            try

            {

                var XML=new XMLWriter();

                XML.BeginNode(“Example”);

                XML.Attrib(“SomeAttribute”, “And Some Value”);

                XML.Attrib(“AnotherAttrib”, “…”);

                XML.WriteString(“This is an example of the JS XML WriteString method.”);

                XML.Node(“Name”, “Value”);

                XML.BeginNode(“SubNode”);

                XML.BeginNode(“SubNode2”);

                XML.EndNode();

                XML.BeginNode(“SubNode3”);

                XML.WriteString(“Blah blah.”);

                XML.EndNode();

                XML.Close(); // Takes care of unended tags.

                // The replace in the following line are only for making the XML look prettier in the textarea.

                document.getElementById(“ExampleOutput”).value=XML.ToString().replace(/,”\n             }

            catch(Err)

            {

                alert(“Error: ” + Err.description);

            }

            return false;

        }

 

生成的xml为:

This is an example of the JS XML WriteString method.

Value

Blah blah.

以上内容就是爱站技术频道小编为大家分享的怎么用JavaScript生成xml,看完以上分享之后,大家再遇到这种问题,自己会操作了吧。