|
GUI -> XML
|
|||
---|---|---|---|
#18+
Всем привет. Думаю как решить такую вот задачу (очень упрощенно): Есть два XML: A.xml и B.xml. Если оба файла представить как дерево элементов, то все листья в обоих файлах будут элементом item. При этом каждому item в файле A соответствует item в файле B, соответствие есть всегда и всегда как 1:1. Задача стоит в написании функции, которая получив XPath элемента(ов) из A.xml, возвращала бы парный ему элемент(ы) из B.xml. Все ломаю голову как бы лучше связать парные элементы в A и B. Есть вариант поместить атрибут/вложенный элемент в item'ы файла A с указанием пути до соответствующего item'a файла B, но тут слишком много повторяющегося кода и в случае изменений файлов придется слишком много переделывать... Возможно ли подобное реализовать посредством XSLT, учитывая что структура файлов может слабо коррелировать и при патчах на системе еще и меняться может??? При этом использовать ф-ю и править xml файлы будут люди с поверхностными знаниями xml, так что решение хотелось бы найти попроще и поэлегантнее... Очень надеюсь на подсказку как именно можно реализовать подобную связь. Чуть попозжа опишу что это за файлы и почему такое название темы (хотя это очевидно:)). ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2011, 14:57 |
|
GUI -> XML
|
|||
---|---|---|---|
#18+
Мутно все описано. Может Вам нужна функция document() из XSL? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2011, 15:35 |
|
GUI -> XML
|
|||
---|---|---|---|
#18+
Решил не пихать все в первый пост, чтобы народ размером не спугнуть.:) В общем есть информационная система поставляемая сторонней компанией. В этой системе есть ряд GUIшных форм, которые хранят данные в текстовом формате. В файлах данные разделены всякими палочкам, решетками и прочими символами. В итоге, чтобы выдрать значение для какого то поля формы с низкого уровня надо, для примера: 1) Извлечь подстроку между 3 и 4 символами "|"; 2) Из нее извлечь подстроку между 6 и 7 символами "#"; 3) Откуда извлечь подстроку межу 2 и 3 символом "?", это и будет искомое значение. Реально формат очень запутанный, с большим кол-вом разделителей. Поскольку ОЧЕНЬ надо иметь возможность работать с данными на низком уровне, хочется написать пакет предоставляющий удобные интерфейсы к этим текстовым данным. Под A.xml я понимал xml, представляющий собой структуру формы, чтобы можно было делать запросы на базе ее структуры с помощью XPath. Под B.xml я имел в виду xml карту размещения данных формы в текстовых файлах на низком уровне. Хотелось бы использовать сразу оба файла, т.к. 1й xml позволит людям пользующимся итоговым продуктом писать свои функции (с формами на высоком уровне они все хорошо знакомы). Ну а 2й файл позволит качественно распарсить структуру текстового файла с данными. Надеюсь этим я хоть немного разъяснил суть вопроса, а не запутал всех в конец... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2011, 16:13 |
|
GUI -> XML
|
|||
---|---|---|---|
#18+
Я, в принципе, рассматривал варианты с 1 xml файлом: 1) Создать xml отражающий структуру формы и в него для каждого конечного элемента закодировать положение данных на низком уровне (между какими полочками, решетками и т.д. они лежат). 2) Или создать xml отображающий структуру данных на низком уровне и элементам представляющим данные прикрутить атрибут/вложить в них спец.элемент в котором будет указан путь до этих данных в форме (Типа: "/форма/вкладка_1/вкладка_1.4/вкладка_1.4.7/текстовое_поле_4"). Но что в первом, что во втором случае будет весьма затруднительно вносить правки в случае изменения структуры формы и расположения данных при очередном патче на системе. Поэтому я и хотел бы использовать сразу 2 xmlя, поскольку так структуры будет гораздо удобнее править. Остался только вопрос как увязать эти 2 xmlя между собой...??? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2011, 16:32 |
|
GUI -> XML
|
|||
---|---|---|---|
#18+
syao, Вместо написания художественного произведения, лучше бы привели пример. На входе так-то - на выходе вот так-то. На сколько я понял, вход не совсем XML изначально. Распарсить текстовый документ, разделенный управляющими символами - элементарная задача для С, Delphi, Java и подобных языков. Зачем городить XSL ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2011, 16:39 |
|
GUI -> XML
|
|||
---|---|---|---|
#18+
Вы хотите чтобы я сюда многокиолбайтный клоб вывалил? К тому же это подпадет под понятие коммерческой тайны, меня за это по голове не погладят. Если за большим количеством букф вопрос оказался не понятен: Я не прошу распарсить за меня текстовый файл, я даже не спрашиваю как его парсить. Я спрашиваю какие существуют способы связать между собой элементы 2х xml файлов с достаточно отличающимися структурами. Причем способ нужен достаточно простой, чтобы легко можно было вносить изменения, т.к. в будущем их структуры могут сильно поменяться. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2011, 17:06 |
|
GUI -> XML
|
|||
---|---|---|---|
#18+
syaoЯ спрашиваю какие существуют способы связать между собой элементы 2х xml 10263658 - _Vasilisk_ же ответил ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2011, 17:32 |
|
|
start [/forum/topic.php?fid=14&tid=1333010]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
140ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 305ms |
total: | 542ms |
0 / 0 |