国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > XML > 正文

JavaScript生成xml

2024-09-05 20:53:18
字體:
來源:轉載
供稿:網友
復制代碼 代碼如下:

function XMLWriter()
{
    this.XML=[];
    this.Nodes=[];
    this.State="";
    this.FormatXML = function(Str)
    {
        if (Str)
            return Str.replace(/&/g, "&amp;").replace(//"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
        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:
復制代碼 代碼如下:

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>
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 方城县| 新乡县| 陆川县| 桐柏县| 永顺县| 南陵县| 榆社县| 镇宁| 清新县| 滁州市| 蕉岭县| 建始县| 雷山县| 工布江达县| 屯留县| 厦门市| 贵南县| 华蓥市| 惠东县| 大埔区| 博罗县| 高邮市| 望奎县| 华宁县| 河南省| 辽宁省| 长顺县| 元氏县| 旬邑县| 正宁县| 中阳县| 新民市| 阳高县| 松溪县| 安达市| 宕昌县| 巩留县| 凌源市| 东方市| 仲巴县| 盘山县|