Страницы: 1
RSS
Макрос вывода в XML со вложенностью и условиями
 
Помогите пожалуйста найти ошибку в макросе
Экспорт таблицы в XML, повторяющиеся родительские элементы должны объединятся в один, который содержит дочерние элементы. Уровни у элементов могут отсутствовать,  (в таблице это "-" ) в xml пропущенные уровни исключаются.
На втором уровне элементов XML файла проблема, если встречаются повторяющиеся элементы они не объединяются в один, а отрабатывает только первый
В таблице это, например, во второй колонке "КАСКО" "ОСАГО" "Займ"

xml файл получается (часть кода)
Код
<sector id="Страхование" name="Страхование">
<product id="ОСАГО" name="ОСАГО">
<problem id="Навязывание дополнительных услуг" name="Навязывание дополнительных услуг"/>
</product>

<problem id="Отказ в заключении договора" name="Отказ в заключении договора"/>
<problem id="Отказ в выплате страхового возмещения" name="Отказ в выплате страхового возмещения"/>
<problem id="Нарушение сроков выплаты" name="Нарушение сроков выплаты"/>
<problem id="Неверное применение КБМ" name="Неверное применение КБМ"/>
<problem id="Отказ в приеме/выдаче документов" name="Отказ в приеме/выдаче документов"/>
<problem id="Несогласие с размером страхового возмещения" name="Несогласие с размером страхового возмещения"/>
<problem id="Удаленность пунктов" name="Удаленность пунктов"/>
<problem id="Прочее" name="Прочее"/>

<product id="КАСКО" name="КАСКО">
<problem id="Нарушение сроков и порядка выплаты" name="Нарушение сроков и порядка выплаты"/>
</product>

<problem id="Отказ в выплате страхового возмещения" name="Отказ в выплате страхового возмещения"/>
<problem id="Несогласие с качеством и сроками ремонта" name="Несогласие с качеством и сроками ремонта"/>
<problem id="Несогласие с размером страхового возмещения" name="Несогласие с размером страхового возмещения"/>
<problem id="Несогласие с размером страховой премии" name="Несогласие с размером страховой премии"/>
<problem id="Прочее" name="Прочее"/>

<product id="Страхование жизни" name="Страхование жизни"/>
<product id="Страхование от несчастных случаев" name="Страхование от несчастных случаев"/>
<product id="Страхование профессиональной ответственности" name="Страхование профессиональной ответственности"/>
<product id="Добровольное медицинское страхование" name="Добровольное медицинское страхование"/>
<product id="Другие продукты" name="Другие продукты"/>
<product id="Банкротство" name="Банкротство"/>
<product id="Прочее" name="Прочее"/>

</sector>
а требуется
Код
<sector id="Страхование" name="Страхование">
<product id="ОСАГО" name="ОСАГО">
<problem id="Навязывание дополнительных услуг" name="Навязывание дополнительных услуг"/>
<problem id="Отказ в заключении договора" name="Отказ в заключении договора"/>
<problem id="Отказ в выплате страхового возмещения" name="Отказ в выплате страхового возмещения"/>
<problem id="Нарушение сроков выплаты" name="Нарушение сроков выплаты"/>
<problem id="Неверное применение КБМ" name="Неверное применение КБМ"/>
<problem id="Отказ в приеме/выдаче документов" name="Отказ в приеме/выдаче документов"/>
<problem id="Несогласие с размером страхового возмещения" name="Несогласие с размером страхового возмещения"/>
<problem id="Удаленность пунктов" name="Удаленность пунктов"/>
<problem id="Прочее" name="Прочее"/>
</product>

<product id="КАСКО" name="КАСКО">
<problem id="Нарушение сроков и порядка выплаты" name="Нарушение сроков и порядка выплаты"/>
<problem id="Отказ в выплате страхового возмещения" name="Отказ в выплате страхового возмещения"/>
<problem id="Несогласие с качеством и сроками ремонта" name="Несогласие с качеством и сроками ремонта"/>
<problem id="Несогласие с размером страхового возмещения" name="Несогласие с размером страхового возмещения"/>
<problem id="Несогласие с размером страховой премии" name="Несогласие с размером страховой премии"/>
<problem id="Прочее" name="Прочее"/>
</product>


<product id="Страхование жизни" name="Страхование жизни"/>
<product id="Страхование от несчастных случаев" name="Страхование от несчастных случаев"/>
<product id="Страхование профессиональной ответственности" name="Страхование профессиональной ответственности"/>
<product id="Добровольное медицинское страхование" name="Добровольное медицинское страхование"/>
<product id="Другие продукты" name="Другие продукты"/>
<product id="Банкротство" name="Банкротство"/>
<product id="Прочее" name="Прочее"/>

</sector
 
Цитата
Solex написал: Помогите пожалуйста найти ошибку в макросе
У вас не ошибка,у вас не верный алгоритм  работы макроса.
Вам надо проверять наличие родителя через xPath.Если таковой в наличии,то добавлять к нему.
Иначе создаете новый,и проверяете для него наличие родителя.
Это непростая задача объединить  данные в  xml.
 
Помогите с кодом куда и как этот xPath вставить ?  
 
Сказал бы  куда вставить:D
Скрытый текст
Изменено: Doober - 27.03.2015 14:26:02
 
Спасибо большое)
Страницы: 1
Наверх