我有这个xml:
<Item name="Alpha">
<Field name="CreationDateTime">2012-04-26</Field>
<Field name="Material" readOnly="X"> Congress </Field>
</Item>
我希望将其转换为此格式(请注意,节点名称需要替换为相应的属性名称)
<Item name="Alpha">
<CreationDateTime >2012-04-26</CreationDateTime>
<Material readOnly="X"> Congress </Material>
</Item>
在jquery中执行此操作的最快方法可能是什么。这必须在具有1000个记录的表中发生,因此必须是有效的。
由于
答案 0 :(得分:0)
以下代码使用jQuery的map函数在文档之间进行转换。它完成了基本的工作,并且可以进一步扩展以满足整个文档的需要。
一些现有问题:
来源:
<script type="text/javascript">
$(function() {
var XML =
'<Item name="Alpha">' +
'<Field name="CreationDateTime">2012-04-26</Field>' +
'<Field name="Material" readOnly="X"> Congress </Field>' +
'</Item>';
$(XML).map(function() {
function map() {
if ($(this).is("Item")) {
var result = $("<Item>").attr("name", "Alpha");
var children = $(this).children().map(map);
$(children).each(function() {
result.append(this);
});
return result;
}
if ($(this).is("Field")) {
var name = $(this).attr("name");
var result = $("<" + name + ">");
// Transfer other attributes
$(this.attributes).each(function() {
if (this.name === "name")
return;
result.attr(this.name, this.value);
});
result.text( $(this).text() );
return result;
}
};
var result = $(XML).map(map);
});
});
</script>