Разбор jqGrid xml с несколькими пространствами имен

0

Я пытаюсь сделать свой 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]" },

пока не повезло.

Заранее спасибо!

  • 0
    Какие веб-браузеры и в какой версии вы используете?
Теги:
namespaces
jqgrid

1 ответ

0
Лучший ответ

Я нашел решение, вам нужно избежать ":", указав имя узла с именами

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"}
 ]

Ещё вопросы

Сообщество Overcoder
Наверх
Меню