void CXMLwithSQLDlg::OnBnClickedCread()
{
CFileException e;
CString strFileName;
for(int i = 0;i < MAX_COLCOUNT;i++)
{
m_list.DeleteColumn(0);
}
m_list.DeleteAllItems();
/*初始化listcontrol控件*/
m_list.InsertColumn(0, "LogID");//插入列
m_list.InsertColumn(1, "Node");
m_list.InsertColumn(2, "NodeID");
m_list.InsertColumn(4, "ComPuterName");
m_list.InsertColumn(5, "UserName");
m_list.InsertColumn(6, "Department");
m_list.InsertColumn(7, "Program");
m_list.InsertColumn(8, "Facility");
m_list.InsertColumn(9, "ObjectName");
m_list.InsertColumn(10, "Details");
m_list.InsertColumn(11, "Result");
m_list.InsertColumn(12, "EntryStamp");
m_list.InsertColumn(13, "Level");
m_list.InsertColumn(14, "Type");
m_list.InsertColumn(15, "ProductType");
m_list.InsertColumn(16, "BehaviourType");
m_list.InsertColumn(17, "Reservation");
CRect rect18;
m_list.GetClientRect(rect18);
m_list.SetColumnWidth(0, rect18.Width()/6);
m_list.SetColumnWidth(1, rect18.Width()/6);
m_list.SetColumnWidth(2, rect18.Width()/6);
m_list.SetColumnWidth(3, rect18.Width()/6);
m_list.SetColumnWidth(4, rect18.Width()/6);
m_list.SetColumnWidth(5, rect18.Width()/6);
m_list.SetColumnWidth(6, rect18.Width()/6);
m_list.SetColumnWidth(6, rect18.Width()/6);
m_list.SetColumnWidth(7, rect18.Width()/6);
m_list.SetColumnWidth(8, rect18.Width()/6);
m_list.SetColumnWidth(9, rect18.Width()/6);
m_list.SetColumnWidth(10, rect18.Width()/6);
m_list.SetColumnWidth(11, rect18.Width()/6);
m_list.SetColumnWidth(12, rect18.Width()/6);
m_list.SetColumnWidth(13, rect18.Width()/6);
m_list.SetColumnWidth(14, rect18.Width()/6);
m_list.SetColumnWidth(15, rect18.Width()/6);
m_list.SetColumnWidth(16, rect18.Width()/6);
m_list.SetColumnWidth(17, rect18.Width()/6);
//定义xml文档对象
MSXML2::IXMLDOMDocumentPtr pDoc;
//定义根节点对象
MSXML2::IXMLDOMElementPtr xmlRoot;
MSXML2::IXMLDOMElementPtr xmlNode;
/*创建DOMDocument对象*/
HRESULT hr = pDoc.CreateInstance(_uuidof(MSXML2::DOMDocument30));
if(!SUCCEEDED(hr))
{
MessageBox("Error");
return;
}
try
{
//读取xml格式路径选择字符串
CFileDialog FileLog(TRUE,"xml",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"xml (*.xml)|*.xml|所有文件(*.*)|*.*||",NULL);
if(FileLog.DoModal() == IDOK)
{
strFileName = FileLog.GetFileName();
}
//加载xml文档
pDoc->load((char*)(_bstr_t)strFileName);
//获取根节点
xmlRoot = pDoc->GetdocumentElement();
//定义一个节点连接对象
MSXML2::IXMLDOMNodeListPtr nodeList = NULL;
//单个节点属性值
MSXML2::IXMLDOMNodePtr pAttrItem;
//创建节点列表
xmlRoot->get_childNodes(&nodeList);
//获取节点数;
long iCount;
nodeList->get_length(&iCount);
/*解析xml文档读取到界面上 */
for(int i = 0;i < iCount/11;i++)
{
VARIANT varval;
//把节点记录值传给pAttrItem
nodeList->get_item(0+i*11, &pAttrItem);
//获取节点的值
pAttrItem->get_nodeTypedValue(&varval);
CString strValue = (char*)(_bstr_t) varval;
//节点值添加到控件中
m_list.InsertItem(i, strValue);
/* 遍历子节点中的子节点*/
nodeList->get_item(1+i*11, &pAttrItem);
MSXML2::IXMLDOMNodeListPtr nodeList1 = NULL;
MSXML2::IXMLDOMNodePtr pAttrItem1;
pAttrItem->get_childNodes(&nodeList1);
long iCount1;
nodeList1->get_length(&iCount1);//获取节点数;
for(int j = 0;j < iCount1;j++)
{
nodeList1->get_item(j, &pAttrItem1);
pAttrItem1->get_nodeTypedValue(&varval);
CString strValue1 = (char*)(_bstr_t) varval;
m_list.SetItemText(i, j+1, strValue1);
}
//
nodeList->get_item(2+i*11, &pAttrItem);
MSXML2::IXMLDOMNodeListPtr nodeList2=NULL;
MSXML2::IXMLDOMNodePtr pAttrItem2;
pAttrItem->get_childNodes(&nodeList2);
long iCount2;
nodeList2->get_length(&iCount2);
for(int m = 0;m < iCount2;m++)
{
nodeList2->get_item(m, &pAttrItem2);
pAttrItem2->get_nodeTypedValue(&varval);
CString strValue2 = (char*)(_bstr_t) varval;
m_list.SetItemText(i,m+8,strValue2);
}
int f = 9;
for(int n = 3+i*11;n < 11+i*11;n++)
{
nodeList->get_item(n, &pAttrItem);
pAttrItem->get_nodeTypedValue(&varval);
CString strValue3 = (char*)(_bstr_t) varval;
m_list.SetItemText(i, f, strValue3);
f++;
}
}
//AfxMessageBox("读取成功");
//释放内存
pDoc.Release();
}
catch (_com_error e)
{
AfxMessageBox("读取失败");
}
}
{
CFileException e;
CString strFileName;
for(int i = 0;i < MAX_COLCOUNT;i++)
{
m_list.DeleteColumn(0);
}
m_list.DeleteAllItems();
/*初始化listcontrol控件*/
m_list.InsertColumn(0, "LogID");//插入列
m_list.InsertColumn(1, "Node");
m_list.InsertColumn(2, "NodeID");
m_list.InsertColumn(4, "ComPuterName");
m_list.InsertColumn(5, "UserName");
m_list.InsertColumn(6, "Department");
m_list.InsertColumn(7, "Program");
m_list.InsertColumn(8, "Facility");
m_list.InsertColumn(9, "ObjectName");
m_list.InsertColumn(10, "Details");
m_list.InsertColumn(11, "Result");
m_list.InsertColumn(12, "EntryStamp");
m_list.InsertColumn(13, "Level");
m_list.InsertColumn(14, "Type");
m_list.InsertColumn(15, "ProductType");
m_list.InsertColumn(16, "BehaviourType");
m_list.InsertColumn(17, "Reservation");
CRect rect18;
m_list.GetClientRect(rect18);
m_list.SetColumnWidth(0, rect18.Width()/6);
m_list.SetColumnWidth(1, rect18.Width()/6);
m_list.SetColumnWidth(2, rect18.Width()/6);
m_list.SetColumnWidth(3, rect18.Width()/6);
m_list.SetColumnWidth(4, rect18.Width()/6);
m_list.SetColumnWidth(5, rect18.Width()/6);
m_list.SetColumnWidth(6, rect18.Width()/6);
m_list.SetColumnWidth(6, rect18.Width()/6);
m_list.SetColumnWidth(7, rect18.Width()/6);
m_list.SetColumnWidth(8, rect18.Width()/6);
m_list.SetColumnWidth(9, rect18.Width()/6);
m_list.SetColumnWidth(10, rect18.Width()/6);
m_list.SetColumnWidth(11, rect18.Width()/6);
m_list.SetColumnWidth(12, rect18.Width()/6);
m_list.SetColumnWidth(13, rect18.Width()/6);
m_list.SetColumnWidth(14, rect18.Width()/6);
m_list.SetColumnWidth(15, rect18.Width()/6);
m_list.SetColumnWidth(16, rect18.Width()/6);
m_list.SetColumnWidth(17, rect18.Width()/6);
//定义xml文档对象
MSXML2::IXMLDOMDocumentPtr pDoc;
//定义根节点对象
MSXML2::IXMLDOMElementPtr xmlRoot;
MSXML2::IXMLDOMElementPtr xmlNode;
/*创建DOMDocument对象*/
HRESULT hr = pDoc.CreateInstance(_uuidof(MSXML2::DOMDocument30));
if(!SUCCEEDED(hr))
{
MessageBox("Error");
return;
}
try
{
//读取xml格式路径选择字符串
CFileDialog FileLog(TRUE,"xml",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"xml (*.xml)|*.xml|所有文件(*.*)|*.*||",NULL);
if(FileLog.DoModal() == IDOK)
{
strFileName = FileLog.GetFileName();
}
//加载xml文档
pDoc->load((char*)(_bstr_t)strFileName);
//获取根节点
xmlRoot = pDoc->GetdocumentElement();
//定义一个节点连接对象
MSXML2::IXMLDOMNodeListPtr nodeList = NULL;
//单个节点属性值
MSXML2::IXMLDOMNodePtr pAttrItem;
//创建节点列表
xmlRoot->get_childNodes(&nodeList);
//获取节点数;
long iCount;
nodeList->get_length(&iCount);
/*解析xml文档读取到界面上 */
for(int i = 0;i < iCount/11;i++)
{
VARIANT varval;
//把节点记录值传给pAttrItem
nodeList->get_item(0+i*11, &pAttrItem);
//获取节点的值
pAttrItem->get_nodeTypedValue(&varval);
CString strValue = (char*)(_bstr_t) varval;
//节点值添加到控件中
m_list.InsertItem(i, strValue);
/* 遍历子节点中的子节点*/
nodeList->get_item(1+i*11, &pAttrItem);
MSXML2::IXMLDOMNodeListPtr nodeList1 = NULL;
MSXML2::IXMLDOMNodePtr pAttrItem1;
pAttrItem->get_childNodes(&nodeList1);
long iCount1;
nodeList1->get_length(&iCount1);//获取节点数;
for(int j = 0;j < iCount1;j++)
{
nodeList1->get_item(j, &pAttrItem1);
pAttrItem1->get_nodeTypedValue(&varval);
CString strValue1 = (char*)(_bstr_t) varval;
m_list.SetItemText(i, j+1, strValue1);
}
//
nodeList->get_item(2+i*11, &pAttrItem);
MSXML2::IXMLDOMNodeListPtr nodeList2=NULL;
MSXML2::IXMLDOMNodePtr pAttrItem2;
pAttrItem->get_childNodes(&nodeList2);
long iCount2;
nodeList2->get_length(&iCount2);
for(int m = 0;m < iCount2;m++)
{
nodeList2->get_item(m, &pAttrItem2);
pAttrItem2->get_nodeTypedValue(&varval);
CString strValue2 = (char*)(_bstr_t) varval;
m_list.SetItemText(i,m+8,strValue2);
}
int f = 9;
for(int n = 3+i*11;n < 11+i*11;n++)
{
nodeList->get_item(n, &pAttrItem);
pAttrItem->get_nodeTypedValue(&varval);
CString strValue3 = (char*)(_bstr_t) varval;
m_list.SetItemText(i, f, strValue3);
f++;
}
}
//AfxMessageBox("读取成功");
//释放内存
pDoc.Release();
}
catch (_com_error e)
{
AfxMessageBox("读取失败");
}
}