Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.09.2009, 15:54
Новичок на форуме
Отправить личное сообщение для vasos Посмотреть профиль Найти все сообщения от vasos
 
Регистрация: 09.09.2009
Сообщений: 7

динамический порядок
имеем вставку в штмл вот примерно такого вида

<textarea id="xsldata" style="display:none">
<?xml version='1.0' encoding='UTF-8'?>
<doc>
<row><rname>region</rname><fname>Район</fname><ptip>1</ptip></row>
<row><rname>pred</rname><fname>Предприятие</fname><ptip>1</ptip></row>
....
<row><rname>oblast</rname><fname>Область</fname><ptip>1</ptip></row>
</doc>
</textarea>



задача такова что нужно динамически менять порядок строк
таблицы XML

мой алгоритм был таков: ввести дополнительный аттрибут/элемент,
по нему вести сортировку и, соответственно, его и менять при необходимости,
но наткнулся на проблему, насколько я понял, невозможно добавить свой элемент в
XML завернутый в textarea, если это возможно то натолкните плз на решение, если нет, то
другого алгоритма я пока не вижу....может есть у кого-нибудь какие-то идеи по этому поводу?
Ответить с цитированием
  #2 (permalink)  
Старый 09.09.2009, 17:20
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 09.07.2008
Сообщений: 3,873

внутри textarea ваш xml-код представляется, как обычная строка, и браузер никак его не парсит и не преобразует теги в DOM-объекты.
Ответить с цитированием
  #3 (permalink)  
Старый 09.09.2009, 22:55
Новичок на форуме
Отправить личное сообщение для vasos Посмотреть профиль Найти все сообщения от vasos
 
Регистрация: 09.09.2009
Сообщений: 7

то есть способ который я предполагал неосуществим никак.....хорошо, может есть какие нибудь предложения, алгоритм, хотябы толчок в нужную сторону?
Ответить с цитированием
  #4 (permalink)  
Старый 09.09.2009, 23:57
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 09.07.2008
Сообщений: 3,873

Я не понимаю для чего может понадобится помещать xml-код в textarea, но если уж так нужно, то работайте со строкой document.getElementById("xsldata").value или попробуйте создавать DOMDocument из вашего кода, а после изменения помещать новое значение в textarea.
Ответить с цитированием
  #5 (permalink)  
Старый 10.09.2009, 09:20
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,022

Сообщение от Octane
попробуйте создавать DOMDocument из вашего кода
Это только для ИЕ.
Можно динамически создать XSL документ и трансформировать им XML-строку не внося изменений. На выходе получим распарсенное DOM-дерево
Ответить с цитированием
  #6 (permalink)  
Старый 10.09.2009, 09:30
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от vasos
задача такова что нужно динамически менять порядок строк

var arr = str.split(/\r\n/g), x = arr[5];
arr[5] = arr[4];
arr[4] = x;
str.join('\r\n');
Ответить с цитированием
  #7 (permalink)  
Старый 10.09.2009, 11:17
Новичок на форуме
Отправить личное сообщение для vasos Посмотреть профиль Найти все сообщения от vasos
 
Регистрация: 09.09.2009
Сообщений: 7

Цитата:
Можно динамически создать XSL документ и трансформировать им XML-строку не внося изменений. На выходе получим распарсенное DOM-дерево
так вначале было у меня, но я так и не понял как можно динамически менять порядок строк в таблице, сортировка? ну так нужно сортировать же по чему-то, а это что-то я и хотел внедрить в xml

вобщем в данном случае я просто не могу понять к чему привязаться для изменнения порядка

ПС Работать все это добро должно firefox only, к сожалению я новичок, много в ответах могу не понимать, посоветуйте плз алгоритм, а техническую сторону я уж как нибудь постараюсь понять сам
Ответить с цитированием
  #8 (permalink)  
Старый 10.09.2009, 12:53
Новичок на форуме
Отправить личное сообщение для vasos Посмотреть профиль Найти все сообщения от vasos
 
Регистрация: 09.09.2009
Сообщений: 7

Сообщение от Riim Посмотреть сообщение
var arr = str.split(/\r\n/g), x = arr[5];
arr[5] = arr[4];
arr[4] = x;
str.join('\r\n');
уважаемый Riim, вобщем-то ход ваших мыслей мне вполне понятен и может быть даже удовлетворит, но может вы мне подскажите, какой сепаратор нужно вписать чтобы в каждом элементе массива был row от начала и до конца, примерно так
arr[0]="<row><rname>region</rname><fname>Район</fname><ptip>1</ptip></row>"
arr[1]="<row><rname>pred</rname><fname>Предприятие</fname><ptip>1</ptip></row>"
ну вот чтото такое...заранее благодарен
Ответить с цитированием
  #9 (permalink)  
Старый 10.09.2009, 13:06
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

RegExp#match
/<row>.*?</row>/gi
Ответить с цитированием
  #10 (permalink)  
Старый 10.09.2009, 13:26
Новичок на форуме
Отправить личное сообщение для vasos Посмотреть профиль Найти все сообщения от vasos
 
Регистрация: 09.09.2009
Сообщений: 7

Сообщение от Riim Посмотреть сообщение
RegExp#match
/<row>.*?</row>/gi

весьма благодарен
второй слеш не будет считатся за окончание выражения? а как его экранировать?

/<row>.*?<\/row>/gi вот так? да?


ПС уже нашел в коментах, спасибо, только регулярное выражение както неправильно работает, но я думаю сам дальше уже, спасибо большое

Последний раз редактировалось vasos, 10.09.2009 в 13:33.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
порядок отображения DIV-ов Gudzon jQuery 6 10.08.2009 23:48
Как узнать динамический код страницы? gosha13 Общие вопросы Javascript 5 27.07.2009 12:31
Кроссбраузерное навешивание событий на динамический элемент Pula Events/DOM/Window 5 02.07.2009 14:02
Порядок выполнения команд shooretz jQuery 2 23.06.2009 17:13
Динамический вывод текстовых сообщений Артём Тарасов Общие вопросы Javascript 4 19.02.2009 12:36