プロジェクトで TinyXML ライブラリを使用して Xml ファイルを生成しています。(C++ ビジュアルスタジオ 2010)
ユーザーが参照ボタンを押すと、複数の写真またはファイルを選択できます。
それぞれの名前を 1 行で書きたいのですが、それらはすべていくつかのタグの間にあります。つまり、出力にこのコードが必要です:
<?xml version="1.0"?>
<opencv_storage>
<images>
./images/cam01.jpg
./images/cam02.jpg
./images/cam03.jpg
./images/cam04.jpg
./images/cam05.jpg
./images/cam06.jpg
./images/cam07.jpg
./images/cam08.jpg
./images/cam09.jpg
./images/cam10.jpg
./images/cam11.jpg
./images/cam12.jpg
./images/cam13.jpg
./images/cam14.jpg
</images>
</opencv_storage>
しかし、それらの間に新しい行をどのように書くことができるかわかりません。ここに私のコードで:
int NumberOfFile = 0;
array<String^>^ NamesOfSelectedFiles = gcnew array<String^>(100);
TiXmlDocument document;
TiXmlElement* msg;
TiXmlDeclaration* dec1 = new TiXmlDeclaration("1.0","","");
document.LinkEndChild(dec1);
TiXmlElement * root = new TiXmlElement( "opencv_storage" );
document.LinkEndChild( root );
msg = new TiXmlElement("images");
openFileDialog1->Title = "Select an Image file";
if (openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
{
for each (String^ file in openFileDialog1->SafeFileNames)
{
String ^orig1 = gcnew String(openFileDialog1->FileName);
pin_ptr<const wchar_t> wch1 = PtrToStringChars(orig1);
size_t origsize1 = wcslen(wch1) + 1;
const size_t newsize1 = 100;
size_t convertedChars1 = 0;
char nstring1[newsize1];
wcstombs_s(&convertedChars1, nstring1, origsize1, wch1, _TRUNCATE);
TiXmlText* txt = new TiXmlText(nstring1);
msg->LinkEndChild(txt);
}
root->LinkEndChild(msg);
document.SaveFile("VID5.xml");
}
このコードによって、私はそのようなファイルを生成します:
<?xml version="1.0" ?>
<opencv_storage>
<images>C:\Users\Public\Pictures\Sample Pictures\Chrysanthemum.jpgC:\Users\Public \Pictures\Sample Pictures\Chrysanthemum.jpg
</images>
</opencv_storage>
この名前の間に改行文字を書くにはどうすればよいですか?
どうもありがとうございます!