Mã:
/* * Ham ghi ra mot tag cua XML */ void WriteXMLTag(CXMLElement *xmlElementParrent,//tag cha của tag cần ghi CString sTagValue, // tên tag cần ghi CString sText) // text của tag vd: <sTagValue>sText</sTagValue>{ CXMLElement *xmlElementTag; CXMLElement *xmlElementText; xmlElementText = new CXMLElement(); xmlElementTag = new CXMLElement(); xmlElementText->Create(sText.GetBuffer(1) ,XET_TEXT); // ghi kieu la TEXT xmlElementTag->Create(sTagValue.GetBuffer(1),XET_TAG); // Ghi kieu la Tag xmlElementTag->AppendChild(xmlElementText); xmlElementParrent->AppendChild(xmlElementTag);}
đây là đoạn code sẽ convert dữ liệu từ file dbf phiên bản 3 sang file XML.
Mã:
/* * Ham ghi cac truong cua du lieu xuong file XML */BOOL SaveFileXML(CString sFileName, CDBFile *dbFile){ CXMLFile xmlFile; CXMLElement *xmlElement1, *xmlElementRoot; xmlElement1 = new CXMLElement; xmlElementRoot = new CXMLElement; xmlFile.SetRoot(xmlElementRoot); //tao tag root cho cua file XML xmlElement1->Create("DataBaseFile",XET_TAG); // tag nay co ten la DatabaseFile xmlElementRoot->AppendChild(xmlElement1); // set tag nay la tag con cua root //tao tag Header CXMLElement *pXmlElementTag; pXmlElementTag = new CXMLElement(); pXmlElementTag->Create("Header",XET_TAG); xmlElement1->AppendChild(pXmlElementTag);//tag header la tag con cua tag DatabaseFile //tao tag HeaderField CXMLElement *pXmlElementField; pXmlElementField = new CXMLElement; pXmlElementField->Create("HeaderFields",XET_TAG); xmlElement1->AppendChild(pXmlElementField); //tao tag Record CXMLElement *pXmlElementRecords; pXmlElementRecords = new CXMLElement; pXmlElementRecords->Create("Records",XET_TAG); xmlElement1->AppendChild(pXmlElementRecords); /************************************************************************/ /* Phan ghi Header cua database file */ /************************************************************************/ CString arrStrHeader[12]; dbFile->HeaderMainToString(arrStrHeader); //ghi tag Head //ghi cac tag la con cua tag head WriteXMLTag(pXmlElementTag,CString("Virsion"),arrStrHeader[0]); WriteXMLTag(pXmlElementTag,CString("LastUpdate"),arrStrHeader[1]); WriteXMLTag(pXmlElementTag,CString("NumberRecord"),arrStrHeader[2]); WriteXMLTag(pXmlElementTag,CString("HeaderLength"),arrStrHeader[3]); WriteXMLTag(pXmlElementTag,CString("RecordLength"),arrStrHeader[4]); WriteXMLTag(pXmlElementTag,CString("Reservode1"),arrStrHeader[5]); WriteXMLTag(pXmlElementTag,CString("dBaseTranFlag"),arrStrHeader[6]); WriteXMLTag(pXmlElementTag,CString("EnCryptFlag"),arrStrHeader[7]); WriteXMLTag(pXmlElementTag,CString("dBaseMultiUser"),arrStrHeader[8]); WriteXMLTag(pXmlElementTag,CString("Indexed"),arrStrHeader[9]); WriteXMLTag(pXmlElementTag,CString("dbLangID"),arrStrHeader[10]); WriteXMLTag(pXmlElementTag,CString("Reservide2"),arrStrHeader[11]); /************************************************************************ / /* //phan ghi Fieldhead cua database * / / ************************************************************************/ CArray<CString,CString&> arrField; arrField.SetSize(1); dbFile->FieldHeaderToString(arrField); int nCountField = 1; for(int i=0; i<dbFile->GetnField(); i++) { CXMLElement *xmlElementFieldi; xmlElementFieldi = new CXMLElement; CString s; s.Format("HeaderField",i+1); xmlElementFieldi->Create(s.GetBuffer(1),XET_TAG); pXmlElementField->AppendChild(xmlElementFieldi); //ghi cac thuoc tinh cua no WriteXMLTag(xmlElementFieldi,CString("FieldName"),arrField.GetAt(nCountField++)); WriteXMLTag(xmlElementFieldi,CString("FieldType"),arrField.GetAt(nCountField++)); WriteXMLTag(xmlElementFieldi,CString("FieldLength"),arrField.GetAt(nCountField++)); } /************************************************************************/ /* //phan ghi dataRecord cua database */ /************************************************************************/ CArray<CString,CString&> sDataRecord; sDataRecord.Copy(dbFile->sDataRecord); int nCount = 0,nRecord = dbFile->GetnRecord(); int iCount = 0; while (nCount < nRecord) { //tao tag Record thu i CXMLElement *pXmlElementRecord; pXmlElementRecord = new CXMLElement; pXmlElementRecord->Create("Record",XET_TAG); pXmlElementRecords->AppendChild(pXmlElementRecord); nCountField = 1; for(int i=0; i< dbFile->GetnField(); i++) { WriteXMLTag(pXmlElementRecord,arrField.GetAt(nCountField),sDataRecord.GetAt(iCount++)); nCountField+=3; } nCount ++; } xmlFile.SaveToFile(sFileName.GetBuffer(1)); // sau khi ghi xong chúng ta lưu file này lại. return true;}
đây là dữ liệu:
Mỗi liệu pháp tại Queen Spa là một hành trình chiều chuộng bản thân, giúp bạn tìm lại sức sống và năng lượng mới. Không gian của Queen Spa được thiết kế sao cho tối ưu hóa sự thoải mái và thư giãn...
Sống Đẹp và Khỏe Mạnh với Queen...