powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / dom4j
7 сообщений из 7, страница 1 из 1
dom4j
    #34206158
ГостЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ, кто знает разъясните как им пользоваться.
С обработкой простого документа я разобрался.
Код: 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
dom4j
    #34206164
ГостЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Т.е. я хотел бы узнать основные приемы работы:
1. как сортировать данные
2. где хранить (в программе, память или все время с файла читать)
3. как универсальнее методы для работы должны выглядеть
...
Рейтинг: 0 / 0
dom4j
    #34207939
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ГостЪ
2. где хранить (в программе, память или все время с файла читать)

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


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


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

Как альтернатива - XStream . Преобразование объекта в XML-код и обратно выполняется за пару действий. Очень удобная штука
...
Рейтинг: 0 / 0
dom4j
    #34208065
С. В.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
или еще одна альтернатива - стандартный JAXB входящий в JDK
...
Рейтинг: 0 / 0
dom4j
    #34211329
ГостЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Обрисуйте идеологию вставки и удаления.
Например мне нужно удалить полностью информацию:
Код: 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
dom4j
    #34220725
ГостЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Когда удаляю запись о песне name="Simon",
то если его пересохранить, остаеться
Код: plaintext
<mp3  />
А как и от этого избавляться?
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / dom4j
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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