2016-12-12 24 views
1

私はtinyxml2を使用しています。タブの代わりにインデント用に4つのスペースを使用してxmlsを保存します。これを読んでいるプログラムはタブを読み込み、エラーが出ます。とにかく、私はtinyxml2を4つのスペースの代わりにタブを使うように変更できますか?私はtinyxml2 - スペースではなくタブでインデントします。

XMLDocument xmlDoc(true, PRESERVE_WHITESPACE); 

を試してみましたが、それは、私はあなたが XMLDocument::SaveFile(const char* filename, bool compact=false) (またはXMLDocument::SaveFile(FILE* fp, bool compact=false))を呼び出すことによって、XML文書を保存していると仮定しているもの

答えて

0

を変更されていません。

これらのメソッドは、要素のインデント用に4つのスペースを書き込むXMLPrinterクラスを使用します(メソッドXMLPrinter::PrintSpace)。 compactパラメータのtrueSaveFileに渡すことで、字下げと改行の書き込みを抑止できます。コンパクトは、xmlをあるアプリケーションから別のアプリケーションに直接渡すときに優先されます。そしておそらくあなたのプログラムはxmlをこの形式で受け入れます。

インデント文字を変更するには、をオーバーロードしてPrintSpaceの独自の実装を提供し、XMLPrinterを使用するためにオーバーロードXMLDocumentを使用する必要があります。

XML文書内の要素間の空白(改行と字下げ)には意味がなく、適合するパーサーによって無視される必要があることに注意してください。それは人間が読みやすくするためのものです。

PRESERVE_WHITESPACE/COLLAPSE_WHITESPACEは、要素のテキストノード内での空白文字の処理方法にのみ影響します。

関連する問題