Если вы полагаетесь на xmlParse
ColdFusion, вам может не повезти здесь. Посмотрите этот пример:
<cfsavecontent variable="x">
<node doubleQuote="<, &, &, >, ", '" singleQuote='<, &, &, >, ", ''>
<, &, &, >, ", '
</node>
</cfsavecontent>
<cfset fileWrite(
expandPath("test.xml"),
xmlParse(x)
)>
Вывод:
<?xml version="1.0" encoding="UTF-8"?>
<node doubleQuote="<, &, >, ", '" singleQuote="<, &, >, ", '">
<, &, &, >, ", '
</node>
Как видите, анализатор генерирует XML полностью заново, в соответствии со своими "собственными" правилами. Все атрибуты заключены в двойные кавычки, поэтому больше нет необходимости кодировать апостроф в значениях атрибутов, а только двойные кавычки. В теле узла (.XmlText
) нет нужды кодировать апостроф и двойные кавычки, так что это не сделано. Кроме того, предыдущие сущности (ре) кодируются с использованием именованных сущностей HTML. Технически это действительный XML, который в то же время несколько «дружественен к HTML4» ('
- неизвестная сущность в HTML4).
Вам потребуется самостоятельно перестроить весь XML-документ в виде строки или использовать другую библиотеку Java для создания XML.