Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / dom4j / 7 сообщений из 7, страница 1 из 1
18.12.2006, 01:41:46
    #34206158
ГостЪ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dom4j
Народ, кто знает разъясните как им пользоваться.
С обработкой простого документа я разобрался.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
<?xml version="1.0" encoding="Windows-1251"?>

<Songs>

<mp3 name="Simon">
  <artist>Lifehouse</artist>
  <album>No Name Face</album>
  <year> 2000 </year>
  <genre>Alternative Rock</genre>
  <track> 6 </track>     
</mp3>

<mp3 name="Hands Clean">
  <artist>Alanis Morrisette</artist>
  <album>Under Rug Swept</album>
  <year> 2002 </year>
  <genre>Alternative Rock</genre>
  <track> 6 </track>     
</mp3>


<mp3 name="Alive">
  <artist>Lifehouse</artist>
  <album>Payable On Deatch</album>
  <year> 2002 </year>
  <genre>Metal</genre>
  <track> 6 </track>     
</mp3>

</Songs>

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
 try 
        {
            File file =  new  File("menu.xml");
            SAXReader xmlReader =  new  SAXReader();

            Document document = xmlReader.read(file);

            Element root = document.getRootElement();

             for  (Iterator i = root.elementIterator(); i.hasNext(); )
            {
                Element element = (Element) i.next();
                Attribute attribute = element.attribute("name");

                System.out.println(attribute.getValue());

                 for  (Iterator j = element.elementIterator(); j.hasNext(); )
                {
                    Element info = (Element) j.next();
                    String name = info.getName();
                    String text = info.getText();
                    
                    System.out.println(name+"="+text);
                }
            }
            Element author1 = root.addElement("mp3")
                    .addAttribute( "name", "Alanis" );
            author1.addElement("artist")
                    .addText("Lifehouse");

            XMLWriter writer =  new  XMLWriter( new  FileWriter("menu1.xml"));

            writer.write(document);
            writer.close();

        }
         catch (Exception e)
        {
            e.getMessage();
        }

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

С документом типо такого:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<?xml version="1.0" encoding="UTF-8"?>
<menubar name="mainMenu">
	<menu name="file" text="Файл" mnemonic="Ф">
		<menuitem name="create" text="Создать" mnemonic="С" accelerator="control N"/>
		<menuitem name="open" text="Открыть" mnemonic="О" enabled="false"/>
		<menuitem name="close" text="Закрыть" mnemonic="З" enabled="false"/>
		<menuitem name="separator"/>
		<menu name="print" text="Печать" mnemonic="П">
			<menuitem name="preview" text="Предварительный просмотр" mnemonic="р"/>
		</menu>
		<menuitem name="separator"/>
		<menuitem name="exit" text="Выход" mnemonic="В" accelerator="alt X"/>
	</menu>
</menubar>
...
Рейтинг: 0 / 0
18.12.2006, 02:04:40
    #34206164
ГостЪ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dom4j
Т.е. я хотел бы узнать основные приемы работы:
1. как сортировать данные
2. где хранить (в программе, память или все время с файла читать)
3. как универсальнее методы для работы должны выглядеть
...
Рейтинг: 0 / 0
18.12.2006, 16:19:30
    #34207939
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dom4j
ГостЪ
2. где хранить (в программе, память или все время с файла читать)

Если не требуется просто преобразовать(а ещё и работать), то подогнать под внутреннее представление


ГостЪ
3. как универсальнее методы для работы должны выглядеть


Есть средства такие как XMLBean
Сам не использовал, говорят удобно
...
Рейтинг: 0 / 0
18.12.2006, 16:33:01
    #34207995
Ruslan.Isbarov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dom4j
LINUXERЕсть средства такие как XMLBean

Как альтернатива - XStream . Преобразование объекта в XML-код и обратно выполняется за пару действий. Очень удобная штука
...
Рейтинг: 0 / 0
18.12.2006, 16:45:37
    #34208065
С. В.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dom4j
или еще одна альтернатива - стандартный JAXB входящий в JDK
...
Рейтинг: 0 / 0
19.12.2006, 18:25:12
    #34211329
ГостЪ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dom4j
Обрисуйте идеологию вставки и удаления.
Например мне нужно удалить полностью информацию:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<mp3 name="Simon">
  <artist>Lifehouse</artist>
  <album>No Name Face</album>
  <year> 2000 </year>
  <genre>Alternative Rock</genre>
  <track> 6 </track>     
</mp3
из всего файла.
Или вставка, а еще если вставка в упорядоченный файл?
Каждый раз его весь перебирать?
...
Рейтинг: 0 / 0
23.12.2006, 19:54:21
    #34220725
ГостЪ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dom4j
Когда удаляю запись о песне name="Simon",
то если его пересохранить, остаеться
Код: plaintext
<mp3  />
А как и от этого избавляться?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / dom4j / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]