Вопрос по Xslt.

  • Автор темы Автор темы Xellos
  • Дата начала Дата начала
X

Xellos

Подскажите, такая задача решается через XSLT или придётся писать преобразование на ЯВУ?

Некоторые элементы входного XML (некоторые - определяется текстовым содержанием элемента) нужно преобразовать в два элемента, находящихся в разных местах выходного дерева.
Грубый пример - программу на C++ преобразовать в программу на Pascal. Ключевой момент - все описания переменных необходимо вытащить в начало документа. То есть когда мы доходим до определённых элементов (объявлений переменных), преобразование должно часть выхода записать "вот сюда, где мы сейчас", а часть - "вон туда".
 
Да бог с ним. Считайте, что она в xml.
Код:
<expression>
int a=10;
</expression>
<expression>
int b=20;
</expression>
<expression>
int c;
</expression>
<expression>
c=a;
</expression>
<expression>
a=b;
</expression>
<expression>
b=c;
</expression>
Ну вот набросал первое, что пришло в голову. Нужно все "int a;" вытащить в начало документа.
 
Охх. Ну допустим так:
Код:
<declarations>
var a: integer;
var b: integer;
var c: integer;
</declarations>
<program>
.....
<expression>
a=10;
</expression>
<expression>
b=20;
</expression>
<expression>
c=a;
</expression>
<expression>
a=b;
</expression>
<expression>
b=c;
</expression>
...
</program>
Пример утрированный, но суть показывает. Просто я не понимаю, как в XSLT писать "не сюда"? Или делать двойной проход, forward looking?
 
О батенька этак вы свой компилятор сооружаете. Тогда надо ачинать с азов.
 
Да не компилятор. Я просто пример привёл преобразования. Нужно часть преобразованных данных записать в начало документа.
 
хм.... а можно увидеть пример не утрированный а реальный?
Какой нибудь реальный документ во что должен быть преобразован?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!