Вопрос по JS и XML (сортировка одного XML по другому)

Spirit412

Топикстартер
12 лет на форуме
Сообщения
511
Оценка реакций
45
Есть два XML, нужно первый относительно второго отсортировать.
XML:
<Ink ID="1" ColorName="PANTONE 253 C" Frequency="150" Angle="7" InkParam="новая"></Ink>
  <Ink ID="2" ColorName="Magenta" Frequency="150" Angle="67" InkParam="новая"></Ink>
  <Ink ID="3" ColorName="Yellow" Frequency="175" Angle="82" InkParam="новая"></Ink>
и
XML:
<Ink ID="1" ColorName="Yellow"></Ink>
  <Ink ID="2" ColorName="PANTONE 253 C"></Ink>
  <Ink ID="3" ColorName="Magenta"></Ink>
А получить нужно
XML:
<Ink ID="1" ColorName="Yellow" Frequency="175" Angle="82" InkParam="новая"></Ink>
<Ink ID="2" ColorName="PANTONE 253 C" Frequency="150" Angle="7" InkParam="новая"></Ink>
<Ink ID="3" ColorName="Magenta" Frequency="150" Angle="67" InkParam="новая"></Ink>
С использованием DOM это всё решается довольно просто. Но в AE, как мне объяснили, стоит ECMAScript без DOM.
Как сделать подобную сортировку в JS?
 

ACTPOHOM

Участник
Сообщения
2 340
Оценка реакций
1 014
а зачем сортировать относительно шаблона ?
 

Spirit412

Топикстартер
12 лет на форуме
Сообщения
511
Оценка реакций
45
Для шаблона на утверждение.
Там для манагеров нужно указать какие формы новые, а какие старые + количество новых.

Один XML генерится из XLS, второй из XMP PDF файла.

Возникла мысль, а не перейти ли на JSON, т.к. JS в AE, поддерживает JSON.parse.
 

baraka

Участник
Сообщения
97
Оценка реакций
42
Есть два XML, нужно первый относительно второго отсортировать.
XML:
<Ink ID="1" ColorName="PANTONE 253 C" Frequency="150" Angle="7" InkParam="новая"></Ink>
  <Ink ID="2" ColorName="Magenta" Frequency="150" Angle="67" InkParam="новая"></Ink>
  <Ink ID="3" ColorName="Yellow" Frequency="175" Angle="82" InkParam="новая"></Ink>
и
XML:
<Ink ID="1" ColorName="Yellow"></Ink>
  <Ink ID="2" ColorName="PANTONE 253 C"></Ink>
  <Ink ID="3" ColorName="Magenta"></Ink>
А получить нужно
XML:
<Ink ID="1" ColorName="Yellow" Frequency="175" Angle="82" InkParam="новая"></Ink>
<Ink ID="2" ColorName="PANTONE 253 C" Frequency="150" Angle="7" InkParam="новая"></Ink>
<Ink ID="3" ColorName="Magenta" Frequency="150" Angle="67" InkParam="новая"></Ink>
С использованием DOM это всё решается довольно просто. Но в AE, как мне объяснили, стоит ECMAScript без DOM.
Как сделать подобную сортировку в JS?
Можно сделать через Split XML File
 

Spirit412

Топикстартер
12 лет на форуме
Сообщения
511
Оценка реакций
45
А можете выложить сам в.ф. посмотреть?
 

Spirit412

Топикстартер
12 лет на форуме
Сообщения
511
Оценка реакций
45
Не выходит.
Что-то не так со смартом "Example: ID By Ref XML"
На выходе, если посмотреть файл xpath_unresolved_Cyan_color-blank_6.xml, должен быть PANTONE 877 C
test Blank-2_01.rar
В архиве в.ф. и рабочие XML
 

Spirit412

Топикстартер
12 лет на форуме
Сообщения
511
Оценка реакций
45
Нашёл ошибку в файле color-blank.xml
PANTONE 427 C
Лишний пробел
Но это не помогло
 

baraka

Участник
Сообщения
97
Оценка реакций
42
И в color-file исправьте
<Inks>
<Ink ...
соответсвенно в
/JOB/Inks/Ink[@ColorName = '']/@ID

Split XML
/JOB/Inks/Ink
 

baraka

Участник
Сообщения
97
Оценка реакций
42
Через Join XML File потом можете это всё "склеить" обратно.
 

Spirit412

Топикстартер
12 лет на форуме
Сообщения
511
Оценка реакций
45
Упорно не хочет отрабатывать последний тикет.
xpath_unresolved
Вроде и запрос верный.
 

ACTPOHOM

Участник
Сообщения
2 340
Оценка реакций
1 014
с XMP из PDF много сюрпризов. Разные программы пишут по разному.
в нормализованном ПДФ, который вполне может у вас проскочить, цвета не будут так называться.
 

Spirit412

Топикстартер
12 лет на форуме
Сообщения
511
Оценка реакций
45
с XMP из PDF много сюрпризов. Разные программы пишут по разному.
в нормализованном ПДФ, который вполне может у вас проскочить, цвета не будут так называться.
Работаем все в AI, так что не должно возникнуть проблем.

Зато возникла проблема с "Join XML Files"
Я полученные десять xml группирую Data Collector, потом сортирую через Sort. Да вот беда - сортировка выходит 10...1...2...3...4...
Есть ли возможность обойтись без этого?
 

ACTPOHOM

Участник
Сообщения
2 340
Оценка реакций
1 014
надо цифирки добавлять 01 02 03
писать скриптулю;
или пользовать Modification date, надеюсь там время юниксовое учитывается, а не секунды
 

Spirit412

Топикстартер
12 лет на форуме
Сообщения
511
Оценка реакций
45
нолики, это первое что попробовал. Но просто влоб... 010, 01, 02, 03 и т.д. выдаёт
С временем не хочется рисковать.
Думаю как вариант, выбрать с 1 по 9 файл - Join, затем выбрать 10й и еще раз Join. Наверное как-то так
 

baraka

Участник
Сообщения
97
Оценка реакций
42
Работаем все в AI, так что не должно возникнуть проблем.

Зато возникла проблема с "Join XML Files"
Я полученные десять xml группирую Data Collector, потом сортирую через Sort. Да вот беда - сортировка выходит 10...1...2...3...4...
Есть ли возможность обойтись без этого?
1547489075170.png