2014-01-17 3 views
1

Может кто-то объяснить, почему формат XML выглядит великолепно в браузере -Джанго остальные рамки - XML ​​форматирование

<job id="blah" name="string2" master="string3" dbversion="string4" xmlversion="string5"> 
    <jobmst> 
     <jobmst_id>10081</jobmst_id> 
     <jobmst_type>2</jobmst_type> 
     <jobmst_prntid>blah blah</jobmst_prntid> 
     <jobmst_active>Y</jobmst_active> 
     ....... 

Но когда я сохранить результат, или сделать локоны страницы она выходит как неформатированный ?

<job id="blah" name="string2" master="string3" dbversion="string4" xmlversion="string5"><jobmst><jobmst_id>10081</jobmst_id><jobmst_type>2</jobmst_type><jobmst_prntid>blah blah</jobmst_prntid><jobmst_active>Y</jobmst_active> 

Редактировать - Я что-то изучаю. Django форматирует его в XML в браузере (хорошо), но источник неформатирован, поэтому мне нужно иметь отдельную функцию загрузки, чтобы отформатировать ее для загрузки?

+0

Имеет ли в браузере вывод + знака, который можно использовать, чтобы щелкнуть открытые части дерева xml? – flup

+0

он делает, и я на самом деле просто обновил свой вопрос. Если у меня мало источников, все это одна строка, что означает, что django форматирует его в строке в браузере. Это говорит мне, что мне понадобится отдельный вид, который будет экспортировать в XML вместо того, чтобы пользователь щелкнул правой кнопкой мыши/сохранил, что просто сохраняет источник, следовательно, 1 строка неформатирована? – whoisearth

ответ

1

Это отлично подходит для XML, который предлагается неформатировать. Это экономит некоторую пропускную способность.

Браузер форматирует XML для вас, когда он отображает его. И большинство редакторов позволят вам форматировать XML, когда вы открыли его для просмотра.

В linux/unix вы можете также format XML on the command line после извлечения его с помощью завитка.

Я не думаю, что Django REST Framework позволяет довольно печатать XML из коробки. Средство рендеринга JSON имеет параметр indent, но я не могу найти его для XML. Вы могли бы, если нужно, написать custom pretty-printing XML renderer, но я бы выбрал один из вышеперечисленных вариантов.

+0

aaah. libxml2 выглядит потенциальным решением, я предполагаю, что тогда я напишу это в фреймворк, чтобы, когда make выполняется, чтобы запустить его через libxml2 до того, как он вытолкнет .xml-файл пользователю? – whoisearth

+0

Нет, пользователь будет запускать xmllint в XML-файле, который он извлекает с вашего сервера. Если вы действительно хотите использовать отформатированный XML, вам нужно будет написать и настроить собственный визуализатор, который это сделает. См. Также http://stackoverflow.com/questions/749796/pretty-printing-xml-in-python – flup

+0

Спасибо! Считайте меня путаным из-за моей наивности. Теперь это имеет смысл. – whoisearth

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