Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / java/xml / 9 сообщений из 9, страница 1 из 1
31.01.2005, 16:22
    #32892839
Naug
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java/xml
Значит нуна мне явой внести кой-какие изменения в xml файл. Я
1)вчитываю файл в dom
Код: plaintext
  document = builder.parse( new  File("content.xml"));
2)добавляю в дом свой нод
3)трансформлю дом в файл
Код: plaintext
1.
2.
3.
4.
5.
   TransformerFactory tFactory = TransformerFactory.newInstance();
        Transformer transformer = tFactory.newTransformer();
        DOMSource source =  new  DOMSource(document);
        PrintWriter pout =  new  PrintWriter("xml.xml");
        StreamResult result =  new  StreamResult(pout);
        transformer.transform(source, result);

И всёбы хорошо (свои изменения я сделал) но возникают проблемы: изначальный файл был в utf-8, а мой в юникоде, у изначального файла был дтд, у меня- нет. Как делать правильно?
...
Рейтинг: 0 / 0
31.01.2005, 19:08
    #32893321
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java/xml
NaugЗначит нуна мне явой внести кой-какие изменения в xml файл. Я
1)вчитываю файл в dom
Код: plaintext
  document = builder.parse( new  File("content.xml"));
2)добавляю в дом свой нод
3)трансформлю дом в файл
Код: plaintext
   TransformerFactory tFactory = TransformerFactory.newInstance();\n        Transformer transformer = tFactory.newTransformer();\n        DOMSource source =  new  DOMSource(document);\n        PrintWriter pout =  new  PrintWriter("xml.xml");\n        StreamResult result =  new  StreamResult(pout);\n        transformer.transform(source, result);

И всёбы хорошо (свои изменения я сделал) но возникают проблемы: изначальный файл был в utf-8, а мой в юникоде, у изначального файла был дтд, у меня- нет. Как делать правильно?

на счет кодировки
...
Рейтинг: 0 / 0
31.01.2005, 22:21
    #32893481
Naug
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java/xml
вот и мне тоже присоветовали. Только не помогает чего-то. Завтра ещё раз проверю конечно, но всё равно в непонятках. Может я немного освещу background так-сказать, может я вообще не то лечу. Значит файл над которым я измываюсь - xml из openoffice (aka staroffice) кирилица которую я там печатаю в xml выглядит как билеберда. Послеже того как я загружаю/выгружаю файл через дом он увеличивается в два раза (при этом прибавляя в содержимом незначительно) и кирилица становится нормальной при просмотре xml. И всё бы хорошо, только вот через опен оффис кирилицф не читается потом (всё остальное- нормально).
...
Рейтинг: 0 / 0
31.01.2005, 23:32
    #32893519
Naug
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java/xml
новейшая версия - PrintWriter, тихушник этакай всё в дефолтовом чарсете шифрует (который у меня- юникод как раз) и кто круче - трансформер или принтер и выяснится завтра (судья OO ,три раунда, доходы идут в фонд борьбы с NullPointerException).
...
Рейтинг: 0 / 0
01.02.2005, 10:08
    #32893830
Naug
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java/xml
Фенька была таки в PrintWritere - я поменял в нем кодировку и всё настроилось (кроме размера увеличение которого вызвано тем что многим тагам добавилось дефолтовых тагов типа
Код: plaintext
table:number-columns-spanned="1" table:number-rows-spanned="1"
). Настройки трансформера влияют на то какая кодировка будет указана в самом xml-е.

Ладушки, а как dtd в дом добавить?(верней почему у меня его нет - ведь при загрузке дома ява всё-таки требует у меня чтоб дтд на который ссылается хмл был доступен)
...
Рейтинг: 0 / 0
01.02.2005, 12:35
    #32894326
Naug
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java/xml
дтд добавляется напрямую к трансформеру
Код: plaintext
1.
2.
transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, "office.dtd");
        transformer.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC,"-//OpenOffice.org//DTD OfficeDocument 1.0//EN");
...
Рейтинг: 0 / 0
01.02.2005, 16:59
    #32895267
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java/xml
PrintWriter ... я поменял в нем кодировку и всё настроилось ...
Как ее поменять?
...
Рейтинг: 0 / 0
01.02.2005, 17:17
    #32895317
Naug
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java/xml
Есть конструктор принимающий стринг с названием кодировки.
PrintWriter pout = new PrintWriter("xml.xml","UTF-8");

Я назвал это менять потому что по умолчанию используется кодировка jvm (у меня- юникод)

Кстати у PrintWritera в 1.5 добавилось api- раньше конструктора принимающего названиt файла небыло (соответственно кодировку надо было менять в конструкторе FileWritera который использовался в создании PrintWritera) .
...
Рейтинг: 0 / 0
01.02.2005, 19:03
    #32895640
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java/xml
NaugЕсть конструктор принимающий стринг с названием кодировки.
PrintWriter pout = new PrintWriter("xml.xml","UTF-8");

Я назвал это менять потому что по умолчанию используется кодировка jvm (у меня- юникод)

Кстати у PrintWritera в 1.5 добавилось api- раньше конструктора принимающего названиt файла небыло (соответственно кодировку надо было менять в конструкторе FileWritera который использовался в создании PrintWritera) .

В jdk1.4 в классе PrintWriter нет конструктора который может кодировку указывать не говоря уже про файл :) У меня сейчас геморой с этими кодировками, приложение на сокетах, обменивается XML файлами, при чем сервер на Java(это я пишу), а клиенты на чем угодно могут быть. На сервере идет валидация пришедшего XML документа на соответствие XML-схеме и вся беда в том, что там есть русские буквы(ёпта), и если они придут в виде крокозяблов, то валидация не проходит. Может поделится кто нибудь опятом работы с кодировками в приложениях на сокетах? :)) а то я уже совсем затрахался, сделал, вроде работает, только сам еще не пойму как, завтра буду разбираться :)
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / java/xml / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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