Я пытаюсь сделать свой xml с помощью jqGrid 4.6 и jquery 1.11. У меня возникли проблемы с чтением атрибутов с пространствами имен.
Ниже мой xml:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<feed>
<id>1234/</id>
<title type="text">ABCD</title>
<entry>
<id>1</id>
<title type="text">Entry 1</title>
<author>
<name />
</author>
<content type="application/xml">
<m:properties>
<d:ContentTypeID>1</d:ContentTypeID>
<d:TitleOfItem />
<d:lastupdated>2014-04-22</d:lastupdated>
</m:properties>
</content>
</entry>
<entry>
<id>2</id>
<title type="text">Entry 2</title>
<author>
<name />
</author>
<content type="application/xml">
<m:properties>
<d:ContentTypeID>2</d:ContentTypeID>
<d:TitleOfItem />
<d:lastupdated>2014-04-22</d:lastupdated>
</m:properties>
</content>
</entry>
</feed>
скрипт для сетки:
<script type="text/javascript">
jQuery(document).ready(function(){
$("#grid")
.jqGrid({
url:'mytemplate.xml',
datatype: "xml",
xmlReader: {
root:"feed",
row:"entry",
repeatitems:false
},
colModel:[
{name:'id', index:'id', width:100, align:'center', xmlmap: "id"},
{name:'ContentTypeID', index:'invid', width:100, align:'center', xmlmap:"????"}
],
height:250,
rowNum:10,
rowList:[10,20,30],
viewrecords: true,
loadonce: true
});
});
</script>
Как прочитать ContentTypeID из указанного выше xml? Я попробовал функцию
xmlmap: function (obj) {
return $(obj).find(">content>RequestedDeliveryDetails").attr("ContentTypeID");
}
а также
xmlmap: "[nodeName=content.m:properties.d:ContentTypeID]" },
пока не повезло.
Заранее спасибо!
Я нашел решение, вам нужно избежать ":", указав имя узла с именами
xmlmap: "ns\\:nodeName" }
поэтому для моего примера xml выше
colModel:[
{name:'id', index:'id', width:100, align:'center', xmlmap: "id"},
{name:'ContentTypeID', index:'invid', width:100, align:'center', xmlmap:"d\\:ContentTypeID"}
]