通过Javascript构建XML字符串的更好方法

时间:2011-10-03 11:23:13

标签: javascript jquery jquery-selectors

我目前有以下内容来构建一个XML字符串,它将通过套接字发送,并且想知道是否有更好的方法来构建它的可读性。

我以为我读过某个地方你可以用快捷方式向DOM添加元素,但不知道这是否适用于字符串/ XML对象。

        var jqInputs = $('input', nRow);  //Get all inputs
        var updatedValues = [];

        jqInputs.each(function (idx) {
            updatedValues.push($(this).val());  //Put values into array
        });

        //Get table columns
        var cols = $('th').filter(function (index) {
            return $(this).text() != "" && $(this).text() != "Edit";
        });

        var colnames = [];

        //Get table column names and put into array
        $.each(cols, function () {
            colnames.push($(this).text());
        });

        //Build up XML and send to server
        if (updatedValues.length == colnames.length) {
            //******************************
            //** IS THERE A BETTER WAY TO DO THIS?????**
            //******************************
            var xmlvalue;
            for(var i = 0; i < updatedValues.length;i++)
            {
                 xmlvalue = xmlvalue + '<' + colnames[i] + '>' + updatedValues[i] + '<\' + colnames[i] + '>'
            }
            socket.send('<Root>'+ xmlvalue +'<UserID>1</UserID></Root>');
        }

1 个答案:

答案 0 :(得分:1)

您可以使用e4x吗?如果是这样,xml是小菜一碟:

var xmlv = <Root />;
for(var i = 0; i < updatedValues.length;i++)
   xmlv.appendChild(<{colnames[i]}>{updatedValues[i]}</{colnames[i]}>);
xmlv.appendChild(<UserID>1</UserID>);
socket.send(xmlv.toXMLString());
相关问题