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 信息要看应用程序的要求,然后通过修改函数来达到目的,这只是一个示例。:->
                    
                

                
            
        
浙公网安备 33010602011771号