Возникли проблемы при создании массива из XML-данных в Acrobat Javascript, помогите, если можете - PullRequest
1 голос
/ 27 августа 2009

У меня есть созданный вручную массив, который уже работает, пример ниже:

var PartsData = { 179: { ref:"",
                         partNum: "201-2007-C00-00",
                         descript: "System Monitor Card (Tracewell Only)",
                         cage: "39764",
                         qty: "1",
                         SMR: "XBOZZ",
                         UOC: "A" }};

Теперь этот массив выше - это всего лишь одно значение в массиве, и он работает нормально. Вот XML, который я пытаюсь использовать для динамического изменения значений.

  <?xml version="1.0" encoding="utf-8"?>
  <partsTables>
    <partsList>
      <part sheetNum="ta1">
        <breakDownIndexNo>-1 </breakDownIndexNo>
        <referenceDesg/>
        <indent>20534220P01 </indent>
        <description/>
        <cage>TAC RI, GRADE-A SHOCK (TEC RACK), ALT P/N 72304-1</cage>
        <qtyPerAssy>23991 </qtyPerAssy>
        <smr>1 </smr>
        <uoc>ADODD </uoc>
        <blank/>
      </part>
    </partsList>
  </partsTables>

У меня в Acrobat этот синтаксический анализ очень хорош. Теперь я хочу, чтобы массив использовал для меня эти значения. если у меня есть следующее ниже, это будет работать.

Где part.item (i) .indent.value равно значению узла отступа и т. Д.

newArr = { 179: { 
                    ref: part.item(i).referenceDesg.value,
                    partNum: part.item(i).indent.value,
                    descript: part.item(i).cage.value,
                    cage: part.item(i).qtyPerAssy.value,
                    qty: part.item(i).smr.value,
                    SMR: part.item(i).uoc.value,
                    UOC: part.item(i).blank.value}};

Как только я попытаюсь сделать значение 179, которое находится в узле breakDownIndexNo, динамическим с использованием прямого part.item (i) .breakDownIndexNo.value, оно не будет скомпилировано. Acrobat использует javascript, поэтому я не уверен, почему я не могу разобрать это.

Я попытался создать переменную из узла breakDownIndexNo и ввел ее как в строку, так и в целое число. это позволит ему создать массив, но не позволит мне выводить из массива. newArr [indexNum] .partNum не дает мне «никаких свойств», где newArr [179] .partNum, если мне нужно было вручную установить номер индекса 179, выведет значение part.item (i) .indent.value.

Если у кого-нибудь из вас есть идея или ответ, пожалуйста, дайте мне знать.

1 Ответ

0 голосов
/ 27 августа 2009

Я ни в коем случае не эксперт по AS, но это выглядит неправильно:

partNum: '201-2007-C00-00",

строка открывается с помощью 'и закрывается с помощью', которая не работает в JS

...