Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > XML, XSL > XML в XML через XSLT и XPath |
Автор: grindbastard 10.5.2013, 22:11 | ||||
Доброго всем времени суток) Ребят, необходима помощь в преобразовании, ибо я пока полный профан в этом деле)
надо "забабахать" XMLтакого вида
|
Автор: diadiavova 11.5.2013, 00:02 | ||
Вот такой код даст тебе приведенный результат вообще из любого хмл-источника.
![]() |
Автор: grindbastard 11.5.2013, 02:27 | ||||
сорь, что-то натупил)) прост тут надо написать шаблон (используя XSLT и XPath) преобразующий основной XML к виду
пока смог написать лишь это
соответственно есть вопросы)) а именно, как можно создать собственные тэги (<QQQ>) и как вытянуть оставшиеся атрибуты со значениями)) ибо пока что вытягивается инфа из всех char....как отсеять и оставить только то, что нужно)) |
Автор: diadiavova 11.5.2013, 02:41 | ||
Они просто вставляются в то место где должны находиться. Оставшиеся после чего и откуда вытянуть? Если надо скопировать атрибуты с какого-то элемента без изменений, то это можно сделать к примеру так
В выходном документе появится только то, что ты туда вставишь. |
Автор: grindbastard 11.5.2013, 02:54 |
спасибо,с тэгами понял))) поповоду атрибутов...тот шаблон, который написал, он получает все атрибуты из всех тегов char...а необходимо получить только конкретные и их значения, а именно ege ="444" fwfww ="4454" s ="34234" wdwwwwww = "334355" trjj="trutu" ykky="6ii6k"....каким образом можно это можно реализовать? еще загвоздка в том, что некоторые атрибуты принадлежат тегам char_g, а их значения в char... ![]() |
Автор: grindbastard 13.5.2013, 00:54 | ||||||||
хм...ну из этой строчки(родной XML)
воспользовавшись тем, что ты написал
не получится это
т.к. в теге char сам атрибут, как видишь - name и уже он равен ege я привел, в самом начале, XML который должен в результате получиться....вот он еще раз
если ставить конкретно задачу, то из всего начального XML надо выбрать необходимые конкретные элементы, а именно: ege,fwfww, s,wdwwwwww,trjj,ykky, которые являются значениями атрибутов name в тегах char и char_g соответственно, также надо выбрать соответствующие эл-ты value,значение которых: 444,4454,34234,334355,trutu,6ii6k т.е. например, при обработке, строчка из родного XML : <char name="ege" value="444" /> должна быть обработана по шаблону так, что бы на выходе получилась строчка такого вида: ege ="444" и так далее по всем приведенным выше элементам (fwfww, s,wdwwwwww,trjj,ykky) ))) |
Автор: diadiavova 13.5.2013, 10:09 | ||||||
grindbastard, Ну наконец-то ты объяснил, что тебе на самом деле надо. ![]()
что значит выбрать? Вообще это выражение xpath выглядит так
|
Автор: grindbastard 13.5.2013, 12:02 | ||
хм,т.е. используя < xsl: value - of select ="//char[@name = 'ege']/@value" /> получится в результате ege ="444", как я понимаю?))) а если необходимое значение атрибута находится в тегe char_g а информация из value в теге char(например < char_g name="s" > < char name="ccc" value= " 34234 " />...должна получиться строчка s = "34234" ) то запрос будет такой?
|
Автор: diadiavova 13.5.2013, 12:30 | ||
Ну попробуй, я не проверял сами выражения, но принцип такой.
Суть ты понял ![]() |
Автор: grindbastard 14.5.2013, 00:07 |
Огромное спасибо! Все пашет как часы)))) |