从官网下载最新tinyxml库
xml文件
<?xml version="1.0" encoding="gb2312" standalone="yes" ?>
<Root>
<FileType>txt_Information</FileType>
<List FileCount="3" ImageWitdh="896" ImageHeight="500" ImageBites="16">
<TXT>E:\data\201604281722\0\00000.dat</TXT>
<TXT>E:\data\201604281722\0\00000.dat</TXT>
<TXT>E:\data\201604281722\0\00000.dat</TXT>
</List>
</Root>
xml对话框
CString inputTxtXML;
const TCHAR szFilters[] = _T("XML files (*.xml)|*.xml|All Files (*.*)|*.*||");
CFileDialog dlg(TRUE, _T("XML"), _T("*.xml"), OFN_FILEMUSTEXIST | OFN_HIDEREADONLY, szFilters);
if (dlg.DoModal() == IDOK)
{
inputTxtXML = dlg.GetPathName();
int Where;
Where = inputTxtXML.ReverseFind('\\');
if (Where == -1)
Where = inputTxtXML.ReverseFind('/');
//以下代码是为新创建的文件设置路径
tiffXML = inputTxtXML.Left(Where);
tiffXML += "\\tifflist.xml";
}
else
{
return;
}
打开xml文件
USES_CONVERSION;
TiXmlDocument xml;
xml.LoadFile(T2A(inputTxtXML));
TiXmlHandle docHandle(&xml);
TiXmlElement* pFileType = docHandle.FirstChild("Root").FirstChild("FileType").ToElement();
//首先判断文件标识
if (!pFileType || strcmp(pFileType->GetText(), "txt_Information"))
{
AfxMessageBox(_T("您打开的XML文件不是文本配置文件!"));
return FALSE;
}
将xml文件中的值写入定义的变量中
int fCount, imageWidth, imageHeight, nBits;
TiXmlElement* pList = docHandle.FirstChild("Root").FirstChild("List").ToElement();
if (NULL != pList)
{
pList->QueryIntAttribute("FileCount", &fCount);
pList->QueryIntAttribute("ImageWitdh", &imageWidth);
pList->QueryIntAttribute("ImageHeight", &imageHeight);
pList->QueryIntAttribute("ImageBites", &nBits);
}
创建xml文件
//创建信息
TiXmlDocument tiff_xml;//输出结果的用XML文件组织起来
TiXmlDeclaration *declaration = new TiXmlDeclaration("1.0", "gb2312", "yes");
tiff_xml.LinkEndChild(declaration);
TiXmlElement *pRoot = new TiXmlElement("Root");
tiff_xml.LinkEndChild(pRoot);
TiXmlElement *pTiffFileType = new TiXmlElement("FileType");
TiXmlText *pFileTypeText = new TiXmlText("tiff_Information");
pTiffFileType->LinkEndChild(pFileTypeText);
pRoot->LinkEndChild(pTiffFileType);
TiXmlElement *pTiffList = new TiXmlElement("List");
pTiffList->SetAttribute("txtWitdh", imageWidth);//图像宽度
pTiffList->SetAttribute("txtHeight", imageHeight);
pTiffList->SetAttribute("totalHeight", fCount*imageHeight);//图像高度
pTiffList->SetAttribute("tiffBites", nBits);
pRoot->LinkEndChild(pTiffList);
//文件内容
TiXmlElement *pTiff = new TiXmlElement("TIFF");
tiffHeight = imageHeight*tag;
pTiff->SetAttribute("tiffHeight", tiffHeight ); //假设tiffHeight的值为11
TiXmlText *pSourceImageText = new TiXmlText(T2A(temp));
pTiff->LinkEndChild("nihao");
pTiffList->LinkEndChild(pTiff);
pTiffList->SetAttribute("tiffCount", tiffCount);
pTiffList->SetAttribute("combineFiles", nCombine);
pTiffList->SetAttribute("lastCombineFiles", tag);
tiff_xml.SaveFile(T2A(pView->tiffXML));
tiff_xml.Clear();//清除所有申请的空间
xml.Clear();
创建的xml文件
<?xml version="1.0" encoding="gb2312" standalone="yes" ?>
<Root>
<FileType>tiff_Information</FileType>
<List txtWitdh="896" txtHeight="500" totalHeight="1750500" tiffBites="16" tiffCount="176" combineFiles="20" lastCombineFiles="1">
<TIFF tiffHeight="11">nihao</TIFF>
</List>
</Root>