powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Altova XMLSpy | Excel XML -> ODS | смешанный порядок элементов | как ?
2 сообщений из 2, страница 1 из 1
Altova XMLSpy | Excel XML -> ODS | смешанный порядок элементов | как ?
    #37872314
s u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
система выдает отчеты в формате xml Excel. необходимо теперь выдавать в формате Open Document Format for Office
Applications (OpenDocument) v1.0, то есть ODS. Так как переписать все отчеты и генератор в указанные сроки не представляется возможным, решили конвертировать с помощью XSLT на лету

начали рисовать в Altova MapForce

загвоздка появляется при конвертировании merge ячеек

в XML Excel это описано как

Код: xml
1.
2.
3.
4.
<Row ss:AutoFitHeight="0">
    <Cell ss:MergeAcross="1" ss:StyleID="s88"><Data ss:Type="String">Total</Data></Cell>
    <Cell ss:StyleID="s82"><Data ss:Type="Number">10</Data></Cell>
</Row>



в ODS требуется явно указывать сколько ячеек накрыто merge и это описывается как

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
<table:table-row>
     <table:table-cell table:style-name="s88" table:number-rows-spanned="1" table:number-columns-spanned="2" office:value-type="string">
        <text:p>Total</text:p>
     </table:table-cell>
     <table:covered-table-cell table:number-columns-repeated="1"></table:covered-table-cell>
     <table:table-cell table:style-name="s82" table:number-rows-spanned="1" office:value-type="float">
        <text:p>10</text:p>
     </table:table-cell>
</table:table-row>



но Altova MapForce выдает сначала все <table-cell> а потом все <covered-table-cell>

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
<table:table-row>
     <table:table-cell table:style-name="s88" table:number-rows-spanned="1" table:number-columns-spanned="2" office:value-type="string">
        <text:p>Total</text:p>
     </table:table-cell>
     <table:table-cell table:style-name="s82" table:number-rows-spanned="1" office:value-type="float">
        <text:p>10</text:p>
     </table:table-cell>
     <table:covered-table-cell table:number-columns-repeated="1"></table:covered-table-cell> <!-- covered-table-cell доложен быть между двумя table-cell в данном примере -->
</table:table-row>



я могу конечно все подправить руками, но хочется иметь наглядную картину и возможность собрать XSLT еще не раз при внесении каких-то изменений в структуру оригинального XML

может кто-нибудь подскажет что подкрутить в Altova?

P.S. если я изобретаю велосипед и уже такой конвертор есть написаный на XSLT или PL/SQL то буду признателен за тынц
...
Рейтинг: 0 / 0
Altova XMLSpy | Excel XML -> ODS | смешанный порядок элементов | как ?
    #37872354
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s uможет кто-нибудь подскажет что подкрутить в Altova?Я думаю, что нужно исправить ошибку в XSL
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Altova XMLSpy | Excel XML -> ODS | смешанный порядок элементов | как ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]