使用MsXML读写XML文件
// MsXmlTest.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "MsXmlTest.h"
#include <clocale>
#include "comutil.h"
#import "msxml4.dll"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// 唯一的应用程序对象
CWinApp theApp;
using namespace std;
void WritePerson(MSXML2::IXMLDOMDocument2Ptr pDocument, MSXML2::IXMLDOMNodePtr pParentNode, CString name, long age)
{
//创建一个<Person>节点
MSXML2::IXMLDOMElementPtr pPersonNode = pDocument->createElement(_T("person"));
pParentNode->appendChild(pPersonNode);
//写入name
MSXML2::IXMLDOMElementPtr pPersonNameNode = pDocument->createElement(_T("name"));
pPersonNameNode->text = _bstr_t(name);
//写入age
MSXML2::IXMLDOMElementPtr pPersonAgeNode = pDocument->createElement(_T("age"));
pPersonAgeNode->text = _bstr_t(age);
pPersonNode->appendChild(pPersonNameNode);
pParentNode->appendChild(pPersonAgeNode);
}
void WritePersons()
{
MSXML2::IXMLDOMDocument2Ptr pXMLDocument;
pXMLDocument.CreateInstance(__uuidof(MSXML2::DOMDocument));
MSXML2::IXMLDOMElementPtr pPersonsNode = pXMLDocument->createElement(_T("persons"));
pXMLDocument->appendChild(pPersonsNode);
WritePerson(pXMLDocument, pPersonsNode, _T("chain"), 25);
WritePerson(pXMLDocument, pPersonsNode, _T("who"), 0);
pXMLDocument->save(_T("persons.xml"));
}
void ReadPersons()
{
MSXML2::IXMLDOMDocument2Ptr pXMLDocument;
pXMLDocument.CreateInstance(__uuidof(MSXML2::DOMDocument));
pXMLDocument->load(_T("persons.xml"));
MSXML2::IXMLDOMElementPtr pRootNode = pXMLDocument->documentElement;
//查找<person>节点.
MSXML2::IXMLDOMNodeListPtr pPersonNodes = pRootNode->selectNodes(_T("person"));
CString s;
long size = pPersonNodes->length;
for (int i = 0; i<size; i++)
{
MSXML2::IXMLDOMNodePtr pPersonNode = pPersonNodes->item[i];
MSXML2::IXMLDOMNodePtr pNameNode = pPersonNode->selectSingleNode(_T("name"));
MSXML2::IXMLDOMNodePtr pAgeNode
相关文档:
经常见XML序列化的文章,对该序列化方式并不是太晓得,看了MSDN和一些资料后有了大致的了解,大道理讲不出来,上 代码先:
方式一 通过XmlSerialize直接序列化:
Class BeSerialized
{
//某字段
public int someFiled;
//公共类的一个可序列化的属性
private bool serialme;
public bool SerialMe
{
......
在XML文件中读取属性文件(.properties)中的元素值:
web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/conf/dataAccessContext.xml</param-value>
</context-param>
<listener>
<listener-class>
......
使用VS2005工具XSD.exe(SDK\v2.0\Bin\xsd.exe)自动生成实体类:
xsd /c /namespace:myCompany /language:CS temp1.xsd
也可以生成DataSet类型的类:
xsd /dataset /language:CS temp1.xsd
( 类文件和XSD之间可以相互转换,也就是说,你也可以先生成类,然后自动生成XSD)
自动读取XML数据 ......