源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

JavaScript生成xml

  • 时间:2020-09-11 14:30 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:JavaScript生成xml
[u]复制代码[/u] 代码如下:
function XMLWriter() {     this.XML=[];     this.Nodes=[];     this.State="";     this.FormatXML = function(Str)     {         if (Str)             return Str.replace(/&/g, "&").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("<"+Name);     }     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)?"<"+Name+"/>":"<"+Name+">"+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: <MyNode>My Value</MyNode> XML.BeginNode(“Foo”); XML.WriteString(“Hello World”); XML.EndNode(); //Produces <Foo>Hello World</Foo> Node 方法: XML.EndNode(); //Produces: <Foo Bar=”Some Value” />   eg:
[u]复制代码[/u] 代码如下:
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(/</g,"\n<");             }             catch(Err)             {                 alert("Error: " + Err.description);             }             return false;         }
生成的xml为: <Example SomeAttribute="And Some Value" AnotherAttrib="...">This is an example of the JS XML WriteString method. <Name>Value </Name> <SubNode> <SubNode2/> <SubNode3>Blah blah. </SubNode3> </SubNode> </Example>
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部