`
wanglery
  • 浏览: 50751 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

用javascript从表单中生成xml

阅读更多

本文以一个简单的登录界面演示,有三个文件,login.html, XMLWriter.js, login.js。

 

 

login.html

 

<html>
<head>
<script  src = "XMLWriter.js" ></script>
<script  src = "login.js" ></script>
</head>
<body>
<form>
用户名:<input id = "uname" type = "text"></input>
<br/>
密   码:<input id = "pword" type = "password"></input>
<br/>
<button id = "aa">submit</button>
</form>
<br/>
</body>
</html>

 

 

XMLWriter.js

 

 

function XMLWriter()
{
    this.XML=['<?xml version="1.0" encoding="UTF-8"?>'];
    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("");}
}

 

login.js

 

function createXML(){
	try
	{
		XML=new XMLWriter();
		XML.BeginNode("Login");
		XML.Node("Name", document.getElementById("uname").value);
		XML.BeginNode("password");             
		XML.WriteString(document.getElementById("pword").value);
		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.
		
	 alert(XML.ToString().replace(/</g,"\n<"););
	}
	catch(Err)
	{
		alert("Error: " + Err.description);
	}


}

window.onload=function(){
	document.getElementById("aa").onclick=createXML;
}

 

 

 

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” />

 

分享到:
评论

相关推荐

    javascript完全学习手册1 源码

    1.3 在Web页面中使用JavaScript 5 1.3.1 HTML的基本结构 5 1.3.2 在HTML中嵌入JavaScript 7 1.3.3 链接JavaScript文件 9 1.4 编写JavaScript的工具 11 1.4.1 使用纯文本编辑器 11 1.4.2 使用专业化脚本编辑工具 13 ...

    javascript完全学习手册2 源码

    1.3 在web页面中使用JavaScript 1.3.1 HTML的基本结构 1.3.2 在HTML中嵌入JavaScript 1.3.3 链接JavaScript文件 1.4 编写JavaScript的工具 1.4.1 使用纯文本编辑器 1.4.2 使用专业化脚本编辑工具 ...

    JavaScript入门经典(第3版)高清PDF—5

    在《JavaScript入门经典(第3版)》的高级主题中,将介绍如何使用cookie,以及如何应用DHTML技术使Web页面焕发动感和活力。另外,《JavaScript入门经典(第3版)》还介绍了Ajax 技术。Ajax技术允许在客户端代码中使用...

    JavaScript入门经典(第3版)高清PDF—3

    在《JavaScript入门经典(第3版)》的高级主题中,将介绍如何使用cookie,以及如何应用DHTML技术使Web页面焕发动感和活力。另外,《JavaScript入门经典(第3版)》还介绍了Ajax 技术。Ajax技术允许在客户端代码中使用...

    JavaScript完全自学宝典 源代码

    1.本书1~21章所附代码的运行环境 操作系统:Windows 2003、... 21.3.js 使用Prototype的Try.these()创建XML DOM。 21.4.html Prototype的Form对象的使用方法。 prototype.js Prototype的.js库文件。

    xalanjava源码-xsd2html2xml:从XML模式(XSD)生成纯HTML5表单。将填写好的表格转换为XML

    从填写的表单生成符合模式的 XML; 支持使用 XML 文档中的数据填充生成的表单; 支持命名空间(包括通过 xs:include 和 xs:import 标签组合模式); 用快速且广泛支持的 XSLT 1.0 编写(这意味着它可以在浏览器中...

    JavaScript详解(第2版)

     18.4.2 使用Ajax从文件中获取XML   18.4.3 Ajax和表单   18.5 Ajax和JSON   18.5.1 JSON数据结构   18.5.2 使用JSON的步骤   18.5.3 JSON综合示例   18.5.4 解决eval&#40;&#41;安全问题   ...

    JavaScript入门经典(第3版)高清PDF—1

    在《JavaScript入门经典(第3版)》的高级主题中,将介绍如何使用cookie,以及如何应用DHTML技术使Web页面焕发动感和活力。另外,《JavaScript入门经典(第3版)》还介绍了Ajax 技术。Ajax技术允许在客户端代码中使用...

    程序天下:JavaScript实例自学手册

    9.36 使用JavaScript向表格中写入数据 9.37 类C# GridView的编辑效果(一) 9.38 类C# GridView的编辑效果(二) 第10章 单选框和复选框 10.1 选择了哪一个单选框 10.2 单击文字实现单选框的选定 10.3 被选中的复选...

    JavaScript王者归来part.1 总数2

     12.8.2 如何使用XML DOM--一个利用XML实现多级关联下拉选择框的例子   12.9 总结   第13章 事件处理  13.1 什么是事件   13.1.1 消息与事件响应   13.1.2 浏览器的事件驱动机制   13.2 基本事件处理  ...

    JSValidation(demo+源码) html表单验证框架

    并创造性的采用xml来存贮表单验证信息,使得表单的验证成为整个项目中最不重要的环节,开发者只需要定义几个xml标记,就可以创建出复杂的验证策略,而不用编写一行JavaScript代码。由于采用xml集中管理表单验证,...

    XML高级编程

    这个例子假设一个出版商希望用XML表单显示自己的数据目录。开始时,我们设计出目录中书籍的描述规则,然后构建那些规则逐个演示每种技术是如何帮助我们构建XML应用程序的。你将看到书籍目录如何转变成文档,每个文档...

    ajax调用java实例源码-xsd-forms:从xml架构文档(xsd)生成Web表单

    ajax调用java实例源码xsd 表格 您想要制作一个提交结构化数据 ...创建一个带注释的模式,并生成纯 html 和 javascript(无服务器端脚本)。 开发人员将表单链接到处理提交的 xml 的服务器端组件。 由于提交的 xml 符合

    《程序天下:JavaScript实例自学手册》光盘源码

    9.36 使用JavaScript向表格中写入数据 9.37 类C# GridView的编辑效果(一) 9.38 类C# GridView的编辑效果(二) 第10章 单选框和复选框 10.1 选择了哪一个单选框 10.2 单击文字实现单选框的选定 10.3 被选中的复选...

    JavaScript权威指南(第6版)中文文字版

    9.3 javascript中java式的类继承 207 9.4 类的扩充 210 9.5 类和类型 212 9.6 javascript中的面向对象技术 217 9.7 子类 230 9.8 ecmascript 5 中的类 239 9.9 模块 248 第10章 正则表达式的模式匹配 253 10.1 正则...

    JavaScript入门经典(第3版)高清—2

    在《JavaScript入门经典(第3版)》的高级主题中,将介绍如何使用cookie,以及如何应用DHTML技术使Web页面焕发动感和活力。另外,《JavaScript入门经典(第3版)》还介绍了Ajax 技术。Ajax技术允许在客户端代码中使用...

    JavaScript权威指南第五版【新】(犀牛书)

    它运用了一些复杂的例子,说明如何处理验证表单数据、使用cookie、创建可移植的DHTML动画等常见任务。本书还包括详细的参考手册,涵盖了JavaScript的核心API、遗留的客户端API和W3C标准DOM API,记述了这些API中的每...

    《JavaScript学习指南(第2版)》[PDF]

     在Ajax应用程序中使用XML或JSON表示法的细节。本书遵循已被验证的学习法则,帮助读者逐步理解各种概念,使读者掌握在各种浏览器中创建强大的、快速响应的应用程序的方法。  “无论你是初学者还是有经验的程序员,...

    JavaScript入门经典(第3版)高清PDF—4

    在《JavaScript入门经典(第3版)》的高级主题中,将介绍如何使用cookie,以及如何应用DHTML技术使Web页面焕发动感和活力。另外,《JavaScript入门经典(第3版)》还介绍了Ajax 技术。Ajax技术允许在客户端代码中使用...

    JavaScript入门经典(第3版) 附书源代码.rar

    HTML表单——与用户进行交互第7章 窗体和框架第8章 字符串操作第9章 日期、时间和计时器第10章 常见错误、调试和错误处理第11章 使用Cookie存储信息第12章 DHTML概述第13章 现代浏览器中的DHTML第14章 JavaScript与...

Global site tag (gtag.js) - Google Analytics