Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Вставка текста со спецсимволами в Node (XML) / 6 сообщений из 6, страница 1 из 1
22.01.2007, 18:42:59
    #34273274
Cro
Cro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка текста со спецсимволами в Node (XML)
Здравствуйте.

Имеется XML-документ в представлении DOM (объект типа Document)
Нужно : в заданный узел Node вставить фрагмент, также содержащий тэги.

При использовании Node.setNodeValue("текст") спецсимволы из "текст" при последующем сохранении в файл преобразуются в Escape-последовательности, что нежелательно.

Т.е. сейчас setNodeValue("<тег>текст</тег>") приводит к вставке с заменой <> на Escape-символы, а нужно чтобы вставлялось как есть, т.е. образовывался полноценный вложенный по отношению к Node тег.

Парсить вставляемый фрагмент тоже в DOM и приаттачивать в качестве дочерних нод не устраивает, есть ли альтернатива ?

Заранее спасибо за подсказки !
...
Рейтинг: 0 / 0
22.01.2007, 19:22:19
    #34273363
Зашедший
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка текста со спецсимволами в Node (XML)
Элементарно - пользоваться CDATA.
Код: plaintext
1.
2.
3.
4.
    ...
    CDATASection section = element.getOwnerDocument().createCDATASection("<tag>text</tag>");
    element.appendChild(section);
    ...
И оно будет выглядеть так:
[SRC xml]
...
<element>
<![CDATA[<tag>text</tag>]]>
</element>
...
[/SRC]
...
Рейтинг: 0 / 0
22.01.2007, 19:35:27
    #34273393
Cro
Cro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка текста со спецсимволами в Node (XML)
Спасибо,

но мне в результате нужно не

<element>
<![CDATA[<tag>text</tag>]]>
</element>

а

<element>
<tag>text</tag>
</element>

причём хотелось бы обойтись без парсинга <tag>text</tag> .

P.S. В появлении новых нод в DOM нет необходимости, достаточно того что получится после выгрузки в фай/стрим.
...
Рейтинг: 0 / 0
22.01.2007, 20:22:33
    #34273485
max_from_sumy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка текста со спецсимволами в Node (XML)
Придется все-таки парсить <tag>text</tag>, так как это и есть новая нода в XML-е хотите ли вы этого или нет
...
Рейтинг: 0 / 0
23.01.2007, 13:54:46
    #34275176
Cro
Cro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка текста со спецсимволами в Node (XML)
max_from_sumyПридется все-таки парсить <tag>text</tag>, так как это и есть новая нода в XML-е хотите ли вы этого или нет

Проблема в том что вставляемый фрагмент может быть как с тегами так и простой текст. Заранее это неизвестно. И если на все такие фрагменты накидывать парсер c целью получения из них ноды, для тех которые не являются XML выдаётся исключение. Например такое :
[Fatal Error] :1:1: Content is not allowed in prolog.
...
Рейтинг: 0 / 0
25.01.2007, 11:40:01
    #34281282
TiG
TiG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка текста со спецсимволами в Node (XML)
Cro max_from_sumyПридется все-таки парсить <tag>text</tag>, так как это и есть новая нода в XML-е хотите ли вы этого или нет

Проблема в том что вставляемый фрагмент может быть как с тегами так и простой текст. Заранее это неизвестно. И если на все такие фрагменты накидывать парсер c целью получения из них ноды, для тех которые не являются XML выдаётся исключение. Например такое :
[Fatal Error] :1:1: Content is not allowed in prolog.

Либо предварительно анализировать является ли текст валидным xml-фрагментом, либо искуственно оборачивать этот текст тегом, парсить и выдирать из получившегося DOM все содержимое добавленного корневого тега для вставки.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Вставка текста со спецсимволами в Node (XML) / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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