Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с XML 
:(
    Опции темы
Mikkie
Дата 21.3.2006, 02:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Подскажите кто-нибудь почему не работает этот пример :

Код

import java.io.*;

public  class MyClass{
    public void  createFile(String a, String b) throws IOException {
           FileWriter out = new FileWriter("test.xml");                 
           org.apache.xerces.dom.DocumentImpl doc = new org.apache.xerces.dom.DocumentImpl();
           org.w3c.dom.Element text = doc.createElement("text");
           text.appendChild(doc.createTextNode(a));
           doc.appendChild(text);
           org.w3c.dom.Element numb = doc.createElement("text2");          
           numb.appendChild(doc.createTextNode(b));
           //*****************************************
            doc.appendChild(numb);          
           //***************************************
            org.apache.xml.serialize.OutputFormat format = new org.apache.xml.serialize.OutputFormat(doc, "windows-1251", true );
            format.setIndenting(true);
            org.apache.xml.serialize.DOMSerializer serealizer = new org.apache.xml.serialize.XMLSerializer(out,format);
            serealizer.serialize(doc);
            out.close();             
    }

    public static void main (String [] args) throws IOException {
    MyClass  m = new MyClass();
    m.createFile("bla-bla-bla","bbbbb");
    }
    
    
}


Проблема как я понял в выделенной строчке....
Он компилируется но при запуске выдает:

Код

Exception in thread "main" org.w3c.dom.DOMException: HIERARCHY_REQUEST_ERR: An a
ttempt was made to insert a node where it is not permitted.
        at org.apache.xerces.dom.CoreDocumentImpl.insertBefore(Unknown Source)
        at org.apache.xerces.dom.NodeImpl.appendChild(Unknown Source)
        at transfer.xml.Transfer.createFile(Transfer.java:19)
        at transfer.xml.Transfer.main(Transfer.java:30)
Press any key to continue...

PM MAIL   Вверх
tux
Дата 21.3.2006, 03:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

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



Дело в том, что XML-документ может иметь только один корневой элемент. В выделенной строчке ты пытаешься добавить к документу второй. Вот так все работает:
Код

import java.io.FileWriter;
import java.io.IOException;

import org.apache.xml.serialize.DOMSerializer;
import org.apache.xml.serialize.OutputFormat;
import org.apache.xml.serialize.XMLSerializer;
import org.w3c.dom.Element;

public class MyClass {
    public void createFile(String a, String b) throws IOException {
        FileWriter out = new FileWriter("test.xml");
        org.apache.xerces.dom.DocumentImpl doc = new org.apache.xerces.dom.DocumentImpl();
        Element root = doc.createElement("test");
        doc.appendChild(root);
        Element text = doc.createElement("text");
        text.appendChild(doc.createTextNode(a));
        root.appendChild(text);
        Element numb = doc.createElement("text2");
        numb.appendChild(doc.createTextNode(b));
        root.appendChild(numb);
        OutputFormat format = new org.apache.xml.serialize.OutputFormat(
                doc, "windows-1251", true);
        format.setIndenting(true);
        DOMSerializer serealizer = new XMLSerializer(
                out, format);
        serealizer.serialize(doc);
        out.close();
    }

    public static void main(String[] args) throws IOException {
        MyClass m = new MyClass();
        m.createFile("bla-bla-bla", "bbbbb");
    }

}

PM MAIL Skype GTalk Jabber YIM   Вверх
Mikkie
Дата 21.3.2006, 03:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



tux,
Спасибо ! =)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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