Как перебрать XML с использованием JavaScript при изменении документа?

Как я могу перебрать список узлов xml (tag="items") и, при этом, вставить новый узел в определенное место, в этом случае, когда изменяется значение chileNode (tag="rowNum")? Вот пример, показывающий мой ввод и мой желаемый результат:

Начиная xml:

<items>
  <item>
     <rowNum>1</rowNum>
     <description>some text</description>
  </item>
  <item>
     <rowNum>1</rowNum>
     <description>some more text</description>
  </item>
  <item>
     <rowNum>2</rowNum>
     <description>some text</description>
  </item>
</items>

Желаемый результат:

<items>
  <item>
     <rowNum>1</rowNum>
     <description>some text</description>
  </item>
  <item>
     <rowNum>1</rowNum>
     <description>some more text</description>
  </item>
  <item>
     <rowNum>1</rowNum>
     <description>last row 1 item</description>
  </item>
  <item>
     <rowNum>2</rowNum>
     <description>some text</description>
  </item>
  <item>
     <rowNum>2</rowNum>
     <description>last row 2 item</description>
  </item>
</items>

1 ответ

Решение
  1. создать переменную для rownum с начальным значением, например, -1
  2. переберите элемент-элемент, но начните с конца
  3. проверьте, отличается ли значение переменной от содержимого элемента rowNum. Если да, присвойте значение переменной содержимому элемента rowNum и вставьте новый узел перед элементом nextSibling текущего элемента item

Демо: http://jsfiddle.net/doktormolle/n5wUC/

Другие вопросы по тегам