2013-11-25 4 views
0

Я пишу код для отправки XML-документа в Servlet. Для одного из полей тега XML мне нужно заполнить его строкой, которая извлекается из внешнего файла.Строка формата для XML

Я нашел пару внешних файлов, содержащих < и> символы. В этом случае сервлет не примет этот XML-документ.

Если я удаляю < и> символы из поля тега XML, XML-документ отправляется правильно.

Поскольку я собираюсь использовать 1000 внешних файлов, я уверен, что будут и другие случаи «незаконных» символов. Существует ли кодировка XML или аналогичная функция, которая может использоваться для форматирования строки, так что она может храниться в теге XML без ошибок?

Я пробовал кодировать HTML, но это не работает. Есть ли равнозначное действие для XML?

+2

Вам необходимо использовать фактический XML API, а не строить строки вручную. Используйте LINQ to XML. – SLaks

+0

Если LINQ не является вариантом, используйте XmlDocument Class http://msdn.microsoft.com/en-us/library/system.xml.xmldocument(v=vs.110).aspx – Bit

+0

HTML-кодирование работает для XML, почему вы думаете, что нет? –

ответ

0

Если вы действительно хотите создать свои собственные XML-строки, поместите внешний символ в тег CDATA. Вам просто нужно убедиться, что конечная последовательность (которая равна ]]>) отсутствует во внешнем файле. Если вы это обнаружите, вам нужно на бис или заменить его другой строкой. Итак:

<![CDATA[*your external stuff containing <and> here*]]> 
Смежные вопросы