2016-08-31 9 views
1

У меня есть требование, согласно которому я должен отправить некоторые завершающие пробельные (вкладки) в конце тегов XML, как показано ниже: -Как избежать обрезки этих задних белых пространств?

<ImportFile Name="32201">Type Action </ImportFile> 

Я использую XMLBeans, чтобы установить значение в тегах: -

ImportFile importFile = importOption.addNewImportFile(); 
importFile.setName("Id"); 
importFile.setStringValue(value); 

Но используя выше всех завершающих пробелов удаляются и результат в следующем составе: -

<ImportFile Name="32201">Type Action</ImportFile> 

PS Я не использую красивую печатающую XMLoption

ответ

1

Попробуйте поместить текст в CDATA блок:

<ImportFile Name="32201"><![CDATA[Type Action ]]></ImportFile> 

Как я знаю, что это не правильный путь, чтобы сохранить пробельные в XML
Согласно Annotated XML Specification, пробелы в значениях атрибутов нормализуются процессором XML.

Эта тема также может быть полезно для понимания синтаксического анализа пробелов в XML - What You Need to Know About Whitespace in XML

+0

Спасибо, Денис. Да, я тоже думал об использовании CDATA, но мне нужно придерживаться рекомендаций, данных клиентом. :( –

+0

Вы можете проанализировать этот xml с регулярным выражением и обернуть такие блоки с помощью CDATA. Или вы могли бы написать свой собственный XML-парсер, как здесь, - http://stackoverflow.com/a/869050/1916536. Но если клиент не следует вы наверняка будете обречены на такие обходные решения навсегда. Поэтому я не стал бы делать грязные хаки и открывал бы дискуссию с клиентом, по крайней мере, чтобы сообщить ему о несоответствиях в его рекомендациях. –

0

Ну, оказалось, что это было в результате следующих только структуру: - Тип Действие На самом деле, чтобы напечатать полученный элемент в документации Я использовал importFile.toString(). Вместо того, чтобы печатать как importFile.xmlText(), я нашел фактический результат.

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