用VC++2005读XML文件的小例子
1。写一个xml文件
<?xml version="1.0" encoding="utf-8" ?>
- <root>
- <user id="101">
<name>abc</name>
<password>abc</password>
</user>
- <user id="102">
<name>ccc</name>
<password>ccc</password>
</user>
</root>
2。新建一个vc++2005工程 可以是对话框工程 因为只是举例说明
(1)在对话框的.H文件添加
#import "msxml3.dll"
using namespace MSXML2;
(2)在初始化函数里添加
try
{
CoInitialize(NULL);//初始化COM组件
MSXML2::IXMLDOMDocumentPtr pDoc;
HRESULT hr=pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument)) ;//创建一个COM进程
if(!SUCCEEDED(hr))
{
AfxMessageBox(_T("FAILSE"),MB_OK,NULL);
}
pDoc->load("d:\\user.xml");//xml文件的地址 我放在D盘下了 也可以写成相对地址
MSXML2::IXMLDOMNodeListPtr pNodeList=NULL;//定义节点列表
pNodeList=pDoc->selectNodes("root/user");//选择节点
MSXML2::IXMLDOMNodePtr pSubNode;
CString strTemp;
for(int i=0;i<(pNodeList->Getlength());i++)//判断有几个节点
{
pSubNode=pNodeList->nextNode()->selectSingleNode("name");
_bstr_t strRequestType=pSubNode->Gettext();
strTemp=strRequestType.operator char*();
AfxMessageBox(strTemp,MB_OK,NULL);
}
}
catch (...)
{
AfxMessageBox(_T("异常"));
}
相关文档:
和在IDE中编译相比,命令行模式编译速度更快,并可以避免被IDE产生的一些附加信息所干扰。本文将介绍微软C/C++编译器命令行模式设定和用法。 1、设置环境变量: PATH=C:\Program Files\Microsoft Visual Studio 8\VC\bin INCLUDE=C:\Program Files\Microsoft Visual Studio 8\VC\include LIB=C:\Program Files\Microsof ......
Step 1:Form1 上添加一个ToolStripContainer控件
Step2:实现代码
private void Form2_Load(object sender, EventArgs e)
{
CMenuEx menu = new CMenuEx();
string sPath = "D:\\Menu.xml";//xml的内容
if (menu.FileExit())
&nb ......
xml:
<?xml version="1.0" encoding="utf-8" ?>
<library>
<name>首都图书馆</name>
<address>朝阳区华威桥南</address>
<books>
<book>
<id>0000</id>
</book>
< ......
XML和HTML常用转义字符
XML和HTML中都有一些特殊的字符,这些字符在XML和HTML中是不能直接使用的,如果必须使用这些字符,应该使用其对应的转义字符。
如果在XML文档中使用类似"<" 的字符, 那么解析器将会出现错误,因为解析器会认为这是一个新元素的开始。
所以不应该像下面那样书写代码:
<message&g ......
<Records>
<Record>
<id>1 </id>
<name>李四 </name>
</Record>
<Record>
<id>2 </id>
<name>张三 </name>
</Record>
<Record>
<id>3 </id>
<name>王五 </name>
</Record& ......