tinyxml2 を使用していますが、システムは xml をタブではなくインデント用に 4 つのスペースで保存します。これを読み取るプログラムはタブのみを読み取り、エラーが発生します。とにかく、4つのスペースの代わりにタブを使用するようにtinyxml2を変更できますか? 私が試してみました
XMLDocument xmlDoc(true, PRESERVE_WHITESPACE);
しかし、それは何も変えていません
tinyxml2 を使用していますが、システムは xml をタブではなくインデント用に 4 つのスペースで保存します。これを読み取るプログラムはタブのみを読み取り、エラーが発生します。とにかく、4つのスペースの代わりにタブを使用するようにtinyxml2を変更できますか? 私が試してみました
XMLDocument xmlDoc(true, PRESERVE_WHITESPACE);
しかし、それは何も変えていません
XMLDocument::SaveFile(const char* filename, bool compact=false)
(またはXMLDocument::SaveFile(FILE* fp, bool compact=false))を呼び出してxmlドキュメントを保存していると思います
。
これらのメソッドは、XMLPrinter要素のインデントに 4 つのスペースを書き込むクラス (メソッドXMLPrinter::PrintSpace) を使用します。パラメータを に渡すことtrueで、インデントと改行の書き込みを抑制することができます。あるアプリケーションから別のアプリケーションに xml を直接渡す場合は、コンパクトが優先されます。おそらく、あなたのプログラムはこの形式で xml を受け入れるでしょう。compactSaveFile
インデント文字を変更するには、オーバーロードXMLPrinterして独自の実装を提供しPrintSpace、オーバーロードXMLDocumentして XMLPrinter を使用する必要があります。
XML ドキュメント内の要素間の空白 (改行とインデント) には意味がなく、準拠するパーサーによって無視される (無視する必要がある) ことに注意してください。これは、人間が読みやすいようにするためだけのものです。
PRESERVE_WHITESPACE/COLLAPSE_WHITESPACEは、要素のテキスト ノード内での空白文字の処理方法にのみ影響します。