我有一个html列表视图,其中包含自定义属性
<li class="horizontal ui-draggable ui-draggable-handle"
isstaticvalue="true" displayname="Default_Value" formuladetailid=""
isuserdefined="true" style="display: inline;">DefaultValue</li>
我想为listview中的每个li创建一个xml,并将自定义属性设置为xml元素。我需要这个xml作为后端程序的参数。
示例:
<array xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><formula>
<displayname>Default_Value</displayname>
<isuserdefined>true</isuserdefined>
<isstaticvalue>true</isstaticvalue>
</formula></array>
答案 0 :(得分:0)
vanilla Javascript中的解决方案
var ul = document.getElementsByTagName('ul')[0];
var lis = ul.childNodes;
var IGNORE_ATTRS = ["style","class"];
var xml = "<array xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n";
for(var i=0;i<lis.length;i++){
var li = lis[i];
if(li.nodeName.toLowerCase()=="li"){
xml+=" <formula>\n";
for (var j = 0, atts = li.attributes, n = atts.length, arr = []; j < n; j++){
var key = atts[j].nodeName;
var value = atts[j].nodeValue;
if(IGNORE_ATTRS.indexOf(key)!=-1) continue;
if(value == "") continue;
xml+= " <"+key+">"+value+"</"+key+">\n";
}
xml+=" </formula>\n";
}
}
xml+= "</array>";