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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> marshalling XML с HTML тэгами, как маршалить символы <, >  
:(
    Опции темы
defunct
Дата 17.11.2008, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вопрос следующий: есть класс MyClass:
Код

class MyClass{
private String someField_;
public MyClass(String someField){
someField_ = someField;
}
public String getSomeField(){
return someField_;
}
}


Далее, создаем экземпляр класса:
Код

MyClass my = new MyClass("<p>Hello, world!</p>");


При сериализации с помощью Marshaller.marshal(my) получается следующий результат:

Код

<?xml version="1.0" encoding="UTF-8"?>
<my-class>
    <some-field>&lt;p&gt;Hello, World!&lt;/p&gt;</some-field>
</my-class>


Как получить следующее (то есть чтобы символы '<' и '>' не заменялись?):

Код

<?xml version="1.0" encoding="UTF-8"?>
<my-class>
    <some-field><p>Hello, World!</p></some-field>
</my-class>

PM MAIL   Вверх
v2v
Дата 17.11.2008, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

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



а как тогда xml парсер будет знать что <p> это часть строкового поля, а не ещё один хмл тег?


--------------------
PM   Вверх
SoulKeeper
Дата 17.11.2008, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 14.1.2007
Где: Ukraine, Lviv.

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



PM MAIL   Вверх
defunct
Дата 18.11.2008, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



v2v, мне пока не надо это unmarshall-ить. Проблема в том, что потом этот xml будет преобразовываться в html с помощью xslt, поэтому мне нужно, чтобы html-тэги оставались тэгами. В случае, если они заменяются, браузер потом воспринимает их как текст и у меня получится <p>Hello, World!<p> на странице, а не Hello, World!.

SoulKeeper, я использую castor для marshall, и если написать

Код

MyClass my = new MyClass("#PCDATA[<p>Hello, World!</p>]");


то все равно получается: 

Код

#PCDATA[<p>Hello, World!</p>]
<?xml version="1.0" encoding="UTF-8"?>
<my-class>
    <some-field>#PCDATA[&lt;p&gt;Hello, World!&lt;/p&gt;]</some-field>
</my-class>


Если написать 

Код

MyClass my = new MyClass("<![CDATA[<p>Hello, World!</p>]]>");


то получим

Код

<![CDATA[Hello, World!]]>
<?xml version="1.0" encoding="UTF-8"?>
<my-class>
    <some-field>&lt;![CDATA[&lt;p&gt;Hello, World!&lt;/p&gt;]]&gt;</some-field>
</my-class>


Я пробывала сделать, как написано тут: http://webdata.dk/guides/castor-cdata.html
но не получается.


Это сообщение отредактировал(а) defunct - 18.11.2008, 08:37
PM MAIL   Вверх
SoulKeeper
Дата 18.11.2008, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 14.1.2007
Где: Ukraine, Lviv.

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



А в чем проблема с &gt; и &lt; ?

Это же стандартная замена для XML файлов.

Это сообщение отредактировал(а) SoulKeeper - 18.11.2008, 09:56
PM MAIL   Вверх
defunct
Дата 20.11.2008, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



SoulKeeper, мне не нужно, чтобы они заменялись - они считаются текстом, а не тэгами. А мне нужно, чтобы они оставались тэгами.
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.0718 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


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

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