将XML节点映射到HTML表单元素

时间:2015-06-06 17:14:39

标签: javascript jquery html xml dom

我想将XML节点值(从AJAX脚本发送的XML)映射到相应的HTML表单元素中。例如,XML数据;

<object>
  <fielda>John</fielda>
  <fieldc>Tailor</fieldc>
</object>

应该通过脚本插入HTML表单:

<form name="myform">
  <input name="fielda" value="">
  <input name="fieldc" value="">
</form>

问题是脚本应该对所有对象一般工作(事先无法知道XML中将给出哪些字段,例如,如果“fieldx”是以XML格式发送的,则此脚本应该满足document.myform.fieldx表单元素来自XML的价值)。因此,此脚本应循环遍历所有XML节点,并尝试将值设置为HTML格式。

1 个答案:

答案 0 :(得分:0)

<强> jsfiddle

HTML

<form name="myform">
    <input name="fielda" value=""/>
    <input name="fieldc" value=""/>
</form>
<div id="status">Loading...</div>

CSS

#status {
    font-style:italic;
    font-size:0.8em;
}

的JavaScript

$.ajax({
    'url':'/echo/xml/',
    'method':'POST',
    'data':{
        xml:'<object>\n<fielda>John</fielda>\n<fieldc>Tailor</fieldc>\n</object>',
        'delay':1
    },
    'complete':function(xhr,status) {
        console.log(xhr);
        var form = document.myform;
        var root = xhr.responseXML.children[0];
        for (var i = 0; i < root.children.length; ++i) {
            var field = root.children[i];
            form[field.nodeName].value = field.textContent;
        } // end for
        document.getElementById('status').textContent = '';
    }
});