Form 表单的 XML 化 | 将 Form 信息转化为 XML 格式信息(Javascript)

如何从一个 HTML 表单生成对应的 XML 呢?在我们为应用程序创建一个简单的 Web 服务接口的时候可能会用到它,来看看这个函数:

 /*设置一个命名空间防止冲突*/

if (typeof jscript == 'undefined') {

  jscript = function() { }

}

jscript.form = function() { }



/**

 * This function takes an HTML form and constructs an XML document from it,

 * using the specified root element.

 *(这个函数把 HTML 表单中的信息转换为 XML document)

 * @param  inForm        A reference ot the HTML form object to serialize.

 * @param  inRootElement The root element the XML dccument should use.

 * @return               A string of XML constructed from serializing the

 *                       specified form.(此参数为 XML document 的根元素)

 */

jscript.form.formToXML = function(inForm, inRootElement) {



  if (inForm == null) {

    return null;

  }

  if (inRootElement == null) {

    return null;

  }

  var outXML = "<" + inRootElement + ">";

  var i;/*开始处理*/

  for (i = 0; i < inForm.length; i++) {

    var ofe = inForm[i];

    var ofeType = ofe.type.toUpperCase();

    var ofeName = ofe.name;

    var ofeValue = ofe.value;

	/*处理不同的 input 框及 select 和 textarea,"SELECT-ONE" 为单选模式*/

    if (ofeType == "TEXT" || ofeType == "HIDDEN" ||

      ofeType == "PASSWORD" || ofeType == "SELECT-ONE" ||

      ofeType == "TEXTAREA") {

      outXML += "<" + ofeName + ">" + ofeValue + "</" + ofeName + ">"

    }

	/*处理 select 的多选(multiple)模式*/

	if(ofeType == "SELECT-MULTIPLE"){

		outXML += "<" + ofeName + ">";

		for(j = 0; j < ofe.options.length; j ++){

			outXML += "<option" + (j + 1) + ">";

			outXML += "<text>" + ofe.options[j].innerHTML + "</text>";

			outXML += "<value>" + ofe.options[j].value + "</value>";

			outXML += "</option" + (j + 1) + ">";

		}

		outXML += "</" + ofeName + ">";

	}

	/*处理单选框(radio)*/

    if (ofeType == "RADIO" && ofe.checked == true) {

      outXML += "<" + ofeName + ">" + ofeValue + "</" + ofeName + ">"

    }

	/*处理多选框*/

    if (ofeType == "CHECKBOX") {

      if (ofe.checked == true) {

        cbval = "true";

      } else {

        cbval = "false";

      }

      outXML = outXML + "<" + ofeName + ">" + cbval + "</" + ofeName + ">"



    }

    outXML += "";

  }

  outXML += "</" + inRootElement + ">";

  return outXML;



} // End formToXML().

来看一个表单,试试这个函数的效果:

<form id="testForm">

	<input type="text" name="firstName" value="Jack"><br>

	<input type="text" name="lastName" value="Redd"><br>

	<select multiple id="numComputers" name="numComputers">

	  <option value="1">I own one computer</option>

	  <option value="2">I own two computers</option>

	  <option value="2+">I own two or more computers</option>

	</select>

</form>

通过表单元素来调用函数:

jscript.form.formToXML(document.getElementById('testForm'),'Person')

来看看它的处理结果:

<Person>

	<firstName>Jack</firstName>

	<lastName>Redd</lastName>

	<numComputers>

		<option1>

			<text>I own one computer</text>

			<value>1</value>

		</option1>

		<option2>

			<text>I own two computers</text>

			<value>2</value>

		</option2>

		<option3>

			<text>I own two or more computers</text>

			<value>2+</value>

		</option3>

	</numComputers>

</Person>

具体生成什么格式的 XML 信息要看应用程序的要求,然后通过修改函数来达到目的,这只是一个示例。:->

你可能感兴趣的:(JavaScript)