написать новую строку между элементами, которые пользователь выбрал из openfiledialog, используя TinyXML в переполнении стека

Я использую библиотеку TinyXML в своем проекте для создания файла XML. (C ++ Visual Studio 2010)

когда пользователь нажимает кнопку обзора, он / она может выбрать более одного изображения или файла.

Я хочу написать каждое имя в одну строку, но все они между парой тегов. Я имею в виду, я хочу этот код в выводе:

   <?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>

Как я могу написать символ новой строки между этими именами?

Спасибо огромное!

1

Решение

Лучшим решением было бы хранить каждый элемент в своем собственном элементе XML, например:

   <?xml version="1.0"?>
<opencv_storage>
<images>
<image>./images/cam01.jpg</image>
<image>./images/cam02.jpg</image>
<image>./images/cam03.jpg</image>
</images>
</opencv_storage>

Затем вам просто нужно перечислить теги image, чтобы создать полный список, не беспокоясь о разборе каждой отдельной строки.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]