JavaScript生成xml_XML/RSS教程-查字典教程网
JavaScript生成xml
JavaScript生成xml
发布时间:2016-12-29 来源:查字典编辑
摘要:复制代码代码如下:functionXMLWriter(){this.XML=[];this.Nodes=[];this.State="";t...

复制代码 代码如下:

functionXMLWriter()

{

this.XML=[];

this.Nodes=[];

this.State="";

this.FormatXML=function(Str)

{

if(Str)

returnStr.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();

}

elseif(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(){returnthis.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”,“SomeValue”);

WriteString方法:

XML.Node(“MyNode”,“MyValue”);

//Produces:<MyNode>MyValue</MyNode>

XML.BeginNode(“Foo”);

XML.WriteString(“HelloWorld”);

XML.EndNode();

//Produces<Foo>HelloWorld</Foo>

Node方法:

XML.EndNode();

//Produces:<FooBar=”SomeValue”/>

eg:

复制代码 代码如下:

functionWriteTest()

{

try

{

varXML=newXMLWriter();

XML.BeginNode("Example");

XML.Attrib("SomeAttribute","AndSomeValue");

XML.Attrib("AnotherAttrib","...");

XML.WriteString("ThisisanexampleoftheJSXMLWriteStringmethod.");

XML.Node("Name","Value");

XML.BeginNode("SubNode");

XML.BeginNode("SubNode2");

XML.EndNode();

XML.BeginNode("SubNode3");

XML.WriteString("Blahblah.");

XML.EndNode();

XML.Close();//Takescareofunendedtags.

//ThereplaceinthefollowinglineareonlyformakingtheXMLlookprettierinthetextarea.

document.getElementById("ExampleOutput").value=XML.ToString().replace(/</g,"n<");

}

catch(Err)

{

alert("Error:"+Err.description);

}

returnfalse;

}

生成的xml为:

<ExampleSomeAttribute="AndSomeValue"AnotherAttrib="...">ThisisanexampleoftheJSXMLWriteStringmethod.

<Name>Value

</Name>

<SubNode>

<SubNode2/>

<SubNode3>Blahblah.

</SubNode3>

</SubNode>

</Example>

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新XML/RSS学习
    热门XML/RSS学习
    编程开发子分类