2015-06-01 3 views
0

Привет всем :) Я разрабатываю программу, которая экспортирует файл .xml (Android dimens file). Моя программа будет экспортировать dimens_ldpi.xml, dimens_mdpi.xml, dimens_hdpi.xml и dimens_xhdpi.xml. Легко сказать, я хочу экспортировать несколько файлов той же структуры. Но я не знаю, как легко экспортировать несколько файлов.Tinyxml - Как экспортировать несколько файлов

тока мой источник, как это:

//xml type declaration 
TiXmlDocument ldpi_doc, mdpi_doc, hdpi_doc, xhdpi_doc; 
TiXmlDeclaration* ldpi_pDec1 = new TiXmlDeclaration("1.0", "utf-8", ""); 
TiXmlDeclaration* mdpi_pDec1 = new TiXmlDeclaration("1.0", "utf-8", ""); 
TiXmlDeclaration* hdpi_pDec1 = new TiXmlDeclaration("1.0", "utf-8", ""); 
TiXmlDeclaration* xhdpi_pDec1 = new TiXmlDeclaration("1.0", "utf-8", ""); 
ldpi_doc.LinkEndChild(ldpi_pDec1); 
mdpi_doc.LinkEndChild(mdpi_pDec1); 
hdpi_doc.LinkEndChild(hdpi_pDec1); 
xhdpi_doc.LinkEndChild(xhdpi_pDec1); 

//Root add node 
TiXmlElement* ldpi_pRoot = new TiXmlElement("resources"); 
TiXmlElement* mdpi_pRoot = new TiXmlElement("resources"); 
TiXmlElement* hdpi_pRoot = new TiXmlElement("resources"); 
TiXmlElement* xhdpi_pRoot = new TiXmlElement("resources"); 
ldpi_doc.LinkEndChild(ldpi_pRoot); 
mdpi_doc.LinkEndChild(mdpi_pRoot); 
hdpi_doc.LinkEndChild(hdpi_pRoot); 
xhdpi_doc.LinkEndChild(xhdpi_pRoot); 

//Add sub node 
TiXmlElement* ldpi_pElem; 
TiXmlElement* mdpi_pElem; 
TiXmlElement* hdpi_pElem; 
TiXmlElement* xhdpi_pElem; 

[ SKIP ] 

Как вы можете видеть, это действительно трудно кодирования и я не хочу жесткого кодирования. Это можно экспортировать в несколько файлов? Спасибо заранее

ответ

0

Я пытаюсь выполнить поиск, но tinyXml не поддерживает множественный экспорт. Поэтому я решил его использовать массив. (Я не удовлетворен, но лучше, чем оригинал)

мой код:

#define RESOLUTION_TYPE  4 
#define ENCODING   new TiXmlDeclaration("1.0", "utf-8", "") //encoding 
#define FIRST_NODE   new TiXmlElement("resources")    //first common node 

//xml type declaration 
TiXmlDocument doc[RESOLUTION_TYPE]; 
TiXmlDeclaration* dec[RESOLUTION_TYPE] = { ENCODING, ENCODING, ENCODING, ENCODING }; 
for (int i = 0; i < RESOLUTION_TYPE; i++){ 
    doc[i].LinkEndChild(dec[i]); 
} 

//Root add node 
TiXmlElement* pRoot[RESOLUTION_TYPE] = { FIRST_NODE, FIRST_NODE, FIRST_NODE, FIRST_NODE }; 
for (int i = 0; i < RESOLUTION_TYPE; i++) { 
    doc[i].LinkEndChild(pRoot[i]); 
} 

//Add sub node 
TiXmlElement* pElement[RESOLUTION_TYPE]; 

Это тесто, чем жесткого программирования, но я надеюсь, что может быть лучше где-нибудь.

Смежные вопросы