как я могу удалить все символы отступа, когда я использую toString () для преобразования объекта xml в coldfusion?

Я кодирую с помощью coldfusion, теперь я пытаюсь использовать toString () для преобразования структуры xml, сгенерированной из xmlParse (), в строку XML, но toString () всегда добавляет некоторые chr (10) и chr (32) между узлами xml, например «‹node1› xxx ‹/node1› chr (10) chr (32) chr (32) chr (32) ‹node2› yyyy ‹/node2›», они выглядят так, как будто сохраняют отступ, поэтому мой вопрос: как можно Я удаляю все эти символы отступа? (Мне нужно сохранить тот же символ внутри содержимого узла, поэтому использование регулярного выражения для удаления всего не работает в этом случае.)

Благодарность


person matthewwang    schedule 30.01.2012    source источник


Ответы (2)


Когда вы вызываете toString (xml), внутри используется Cast._String (), которая обертывает String.valueOf (), который обертывает метод NodeImpl.toString () в классе org.apache.xerces.dom.NodeImpl.

http://xerces.apache.org/xerces-j/apiDocs/org/apache/xerces/dom/NodeImpl.html#toString ()

Метод .toString () предоставляет вам копию данных не в домене для целей отладки.

Что касается того, почему он вводит CRLF и т. Д., Я не уверен. Я пошляну и посмотрю, что найду.

person Mike Causer    schedule 30.01.2012

Chr (10) - это перевод строки, а 32 - это пробел, так что да, это просто форматирование.

Когда вы записываете содержимое переменной, в которую вы помещаете вывод из toString, chr-функции ColdFusion исчезают, оставляя вам совершенно правильный xml.

Как и Майк, я немного не понимаю, почему они появляются. Вы упаковываете вывод в xmlformat или аналогичный формат? Если да, то не надо. Формат Xmlformat предназначен только для содержимого узла, а не для полной структуры.

person Stephen Moretti    schedule 30.01.2012