отступ XML - PullRequest
       21

отступ XML

6 голосов
/ 27 декабря 2010

Я пишу XML-файл с использованием API xmlwriter libxml2.

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

Кто-нибудь знает, как это исправить?

Большое спасибо.

Ответы [ 2 ]

10 голосов
/ 27 декабря 2010

Я собираюсь немного потрудиться, но я скажу, что под "отступом не стоит" вы подразумеваете, что он вообще не имеет отступов.

libxml2 по умолчанию не будет создавать отступ для вашего XML-файла, потому что в XML пробел (включая тот, который используется для отступа) - это важные данные. То есть этот XML-файл:

<root>
    <foo>Bar</foo>
</root>

семантически отличается от:

<root><foo>Bar</foo></root>

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

Тем не менее, это часто используемый бит XML. К сожалению, большая часть XML, которую я видел, имеет отступ. В libxml2 есть опции для автоматического вывода отступа при записи и удаления его при чтении, но обратите внимание: здесь есть некоторые предостережения: он может ошибиться. Документы говорят больше.

Я думаю, что эта функция может помочь вам (я сам никогда не использовал это :-)), если вы хотите, чтобы она отступала для вас: xmlTextWriterSetIndent

Обратите внимание на предупреждение: libxml2 FAQ

И информация здесь: Спецификация XML

0 голосов
/ 27 февраля 2013

Я полагаю, что вы хотели использовать отступ только для того, чтобы вы могли читать файл XML ... в этом случае, теперь вы можете использовать Google Chrome, чтобы увидеть XML, и он будет показан уже с отступом (помните, что это не очень хорошая идея, чтобы сделать отступ для XML-файла с помощью libxml2).

...