2013-08-14 3 views
2

У меня есть функция, в которой я создаю узел и устанавливаю его textContent для специального символа, например, пули (•). Эта функция вызывается в xsl: apply-templates. Однако выход выходит из специального карикатора, и вместо того, чтобы видеть пулю, • появляется в моем результате. После некоторых исследований я не нашел способа отключить экранирование с моего узла. Мой тезис состоит в том, что созданный узел - это раздел CDATA, но как я могу его вернуть?Как отключить специальный символ escaping java Node

Вот код, который я использовал для создания узла:

DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();     
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();     
Document doc = docBuilder.newDocument(); 
result = doc.createElement("doesntmatter"); 
result.setTextContent("•"); 

Спасибо за вашу помощь :)

Edit: Что-то, как отключить-выход-побег в XSLT, но и для Java Element/узел должен сделать трюк

ответ

4

Проблема в том, что вы используете setTextContent, но затем предоставляете экранированную версию - вы должны позволить API выполнять экранирование. Вы в настоящее время пытаетесь установить текстовое содержимое узла буквально "•" - не пуля. Вы, наверное, просто хотите:

result.setTextContent("\u2022"); 

, чтобы указать, что содержание должно быть просто U+2022 (bullet) что точка 8226 код в десятичной системе счисления.

Смежные вопросы