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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> xmlns - как добавить? 
V
    Опции темы
Vasan
Дата 17.11.2008, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый день! Пишу на java конвертор из xls в xml. Использую jdom. Структура должна быть такой же, как и если сохранить экселеский файл стандартными средствами в xml (через файл сохранить как).
Пример файла xml который генерирует excel:
Код

<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:o="urn:schemas-microsoft-com:office:office"
 xmlns:x="urn:schemas-microsoft-com:office:excel"
 xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:html="http://www.w3.org/TR/REC-html40">
...


А вот немного кода:
Код

 Element root = new Element("Workbook");
 Document document = new Document();
 root.setAttribute("xmlns","urn:schemas-microsoft-com:office:spreadsheet");
 document.setRootElement(root);

Не создается параметр xmlns. Если вместо него подставить другой, например "version","1.0" то все хорошо, на выходе получу следующее:
Код

...
<Workbook version="1.0"
...


Как мне получить требуемый результат?
PM MAIL   Вверх
sir_nuf_nuf
Дата 18.11.2008, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Vasan, xmlns - это не имя аттрибута. Это пространство имен Элемента.
Оно задается при создании элемента.

Код

Document document = new Document();
Element root = doc.createElementNS("urn:schemas-microsoft-com:office:spreadsheet", "Workbook");
document.setRootElement(root);


и вообще так:
Цитата(Vasan @  17.11.2008,  14:15 Найти цитируемый пост)
Element root = new Element("Workbook");

Элементы не создают.
Их создают с помощью существующего объекта документа.


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


Новичок



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

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



Большое спасибо, разобрался. На всякий случай выложу код, может кому пригодиться.
Сделал так:

Код

   String ss = new String("urn:schemas-microsoft-com:office:spreadsheet");

   Document doc = new Document();
   Element root =  new Element("Workbook",ss);
   doc.setRootElement(root);


Аналогично сделал и для дочерних элементов. Всё с namespace теперь аккуратно получается.

Код

        String o = new String("urn:schemas-microsoft-com:office:office");

        Element DocumentProperties = new Element("DocumentProperties",o);
        root.addContent(DocumentProperties);

        Element Author = new Element("Author",o);
        Element LastAuthor = new Element("LastAuthor",o);
        Element Created = new Element("Created",o);
        Element LastSaved = new Element("LastSaved",o);
        Element Company = new Element("Company",o);
        Element Version = new Element("Version",o);

        Author.setText("Admin");
        LastAuthor.setText("Admin");
        Created.setText("2008-01-01T00:00:00Z");
        LastSaved.setText("2008-01-01T00:00:00Z");
        Company.setText("KGB");
        Version.setText("11.9999");

        DocumentProperties.addContent(Author);
        DocumentProperties.addContent(LastAuthor);
        DocumentProperties.addContent(Created);
        DocumentProperties.addContent(LastSaved);
        DocumentProperties.addContent(Company);
        DocumentProperties.addContent(Version);     


На выходе очень красивый xml (правда вид не читаемый, т.к. в одну строку пихает):
Код

<?xml version="1.0" encoding="UTF-8"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet">
<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
<Author>Admin</Author>
<LastAuthor>Admin</LastAuthor>
<Created>2008-01-01T00:00:00Z</Created>
<LastSaved>2008-01-01T00:00:00Z</LastSaved>
<Company>KGB</Company>
<Version>11.9999</Version>
</DocumentProperties>
<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:office">
<WindowHeight>1</WindowHeight>
<WindowWidth>1</WindowWidth>
<WindowTopX>1</WindowTopX>
<WindowTopY>1</WindowTopY>
<ProtectStructure>1</ProtectStructure>
<ProtectWindows>1</ProtectWindows>
</ExcelWorkbook>
</Workbook>

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

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

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

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

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


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

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


 




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


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

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