Модераторы: diadiavova
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Записать разные namespace у аттрибутов элемента 
V
    Опции темы
Vasan
Дата 27.11.2008, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 9.8.2004

Репутация: нет
Всего: нет



Привет всем! Не могу разобраться, как, используя JDOM, при создании элемента к двум разным аттрибутам этого элемента "привязать" разные namespace? Т.е. в итоге мне надо получить следующее:

Код

<Font ss:FontName="Arial Cyr" x:CharSet="204" ss:Size="12" ss:Bold="1"/>


Элемент создаю следующим образом (ss определил заранее как строку):
Код

Element Font = new Element("Font",ss);
root.addContent(Font);


Но такой способ для этого случая не годиться :(

Подскажите пожалуйста как можно такое сотворить?
PM MAIL   Вверх
sir_nuf_nuf
Дата 27.11.2008, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 5
Всего: 31



Vasan, да так и делать.
Создавайте объекты аттрибутов с нужными неймспейсами, добавляйте их к вашему элементу и вперед:
Код

Element font = new Element("Font",ss);
Attribute a1 = new Attribute("FontName", namespace1);
font.addContent(a1);
Attribute a2 = new Attribute("FontName", namespace2);
font.addContent(a2);
root.addContent(font);



--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
Vasan
Дата 27.11.2008, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 9.8.2004

Репутация: нет
Всего: нет



2sir_nuf_nuf
Большое спасибо! Помогло!

Правда сделал вот так:
Код

Attribute FontName = new Attribute("FontName",ss);
Font.setAttribute(FontName);
Attribute CharSet = new Attribute("CharSet",x);
Font.setAttribute(CharSet);


Добавлено через 14 минут и 38 секунд
Ой... что-то я запутался совсем, да и ослеп)

Совсем всё не так.  Код
Код

Attribute FontName = new Attribute("FontName",ss);
Font.addContent(FontName);

возвращает ошибку: "The method addContent(String) in the type Element is not applicable for the arguments (Attribute)".

А тот код, который от радости привёл я, он вообще устанавливает value аттрибута:

Код

<Font FontName="mynamespacedeclaration1" CharSet="mynamespacedeclaration2" /> 


В общем, совсем ничего не получается...
PM MAIL   Вверх
sir_nuf_nuf
Дата 27.11.2008, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 5
Всего: 31



Vasan, я вообще не работал с JDOM. сейчас читаю javadoc.
По идее (точнее по спецификации DOM) - за создание аттрибутов должен отвечать метод createAttribute объекта document.

Надо просто выяснить как создавать аттрибуты в JDOM.

-----------------------

мда.. JDOM - кривое API.
нужно использовать метод setAttribute:
Код

Namespace ns1 = Namespace.getNamespace("namespace string here");
Attribute a = new Attribute("name of attr", "value of attr", ns1);
elem.setAttribute(a);


Это сообщение отредактировал(а) sir_nuf_nuf - 27.11.2008, 19:19


--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
Vasan
Дата 27.11.2008, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 9.8.2004

Репутация: нет
Всего: нет



2sir_nuf_nuf
Согласен, что JDOM - кривое апи. Некоторые другие парсеры более понятны. Если в JDOM разобраться, действительно меньше кода надо, о чем говорят даже на сайте разработчиков: http://www.servlets.com/speaking/jdom-javaone.pdf
Но разобраться проблема. Хотя.... "и не такую броню брали" smile
PM MAIL   Вверх
sir_nuf_nuf
Дата 27.11.2008, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 5
Всего: 31



Vasan, я не имел в виду, "сложное" или "неудобное".
Просто есть стандарт DOM, где сказано у каких объектов должны быть какие методы и что они должны делать.
Так вот:
создание аттрибута с помощью конструктора (как в JDOM),  а  не с помощью фабричного метода (как в стандарте) - это плохо.
ибо, программистам понадобится время, что бы освоить это


--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась.

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




[ Время генерации скрипта: 0.0738 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.