社区
HTML/XML
帖子详情
谁能给我点XML读写的代码让我参考一下。
ColderRain
2003-12-23 09:43:52
加精
我刚接触XML,对XML不熟悉,现在没有时间学习。
能否给出代码实现如下功能:
1.创建一个XML文件
2.随便将一个字符串写进去
3.将上一部中的字符串读出来。
如能提供VC读写XML的资料更好。
...全文
177
9
打赏
收藏
谁能给我点XML读写的代码让我参考一下。
我刚接触XML,对XML不熟悉,现在没有时间学习。 能否给出代码实现如下功能: 1.创建一个XML文件 2.随便将一个字符串写进去 3.将上一部中的字符串读出来。 如能提供VC读写XML的资料更好。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
clancy
2003-12-25
打赏
举报
回复
给我一个信箱吧,我发给你。
孤必有邻
2003-12-24
打赏
举报
回复
曾经看过这个:http://xml007.myetang.com/
孤必有邻
2003-12-24
打赏
举报
回复
先贴一段写的代码:
#import "msxml3.dll" named_guids
using namespace MSXML2;
CoInitialize(NULL);
...
//一段写的代码
// 创建文档
MSXML2::IXMLDOMDocument2Ptr pXMLDoc = NULL;
pXMLDoc.CreateInstance("Msxml2.DOMDocument.3.0");
// Create the Processing Instruction
MSXML2::IXMLDOMProcessingInstructionPtr pXMLProc = NULL;
pXMLProc = pXMLDoc->createProcessingInstruction("xml", "version='1.0' encoding='UTF-8'");
// Insert the Processing Instruction
_variant_t vNullVal;
vNullVal.vt = VT_NULL;
pXMLDoc->insertBefore(pXMLProc, vNullVal);
// 创建根结点
_variant_t varNodeType((short)MSXML2::NODE_ELEMENT);
MSXML2::IXMLDOMNodePtr pXMLNodeRoot= NULL;
pXMLNodeRoot = pXMLDoc->createNode(varNodeType, _T("Root"), _T(""));
// 添加根结点
pXMLDoc->appendChild(pXMLNodeRoot);
// 创建并添加下级结点
MSXML2::IXMLDOMNodePtr pXMLNodeNode= NULL;
pXMLNodeNode = pXMLNodeRoot->appendChild(pXMLDoc->createElement(_T("Node1")));
pXMLNodeNode = pXMLNodeRoot->appendChild(pXMLDoc->createElement(_T("Node2")));
// 创建并设置下级结点属性(3个:姓名、性别、年龄)
MSXML2::IXMLDOMAttributePtr pXMLAttr = NULL;
pXMLAttr = pXMLDoc->createAttribute(_T("name"));
pXMLAttr->nodeTypedValue = "王进";
pXMLNodeNode->attributes->setNamedItem(pXMLAttr);
pXMLAttr = pXMLDoc->createAttribute(_T("sex"));
pXMLAttr->nodeTypedValue = "男";
pXMLNodeNode->attributes->setNamedItem(pXMLAttr);
pXMLAttr = pXMLDoc->createAttribute(_T("age"));
pXMLAttr->nodeTypedValue = "80";
pXMLNodeNode->attributes->setNamedItem(pXMLAttr);
// 创建下级元素结点
MSXML2::IXMLDOMElementPtr pXMLEle = NULL;
pXMLEle = pXMLDoc->createElement(_T("file"));
pXMLEle->appendChild(pXMLDoc->createTextNode("Element"));
// 添加元素结点
pXMLNodeNode->appendChild( pXMLEle );
/*
// 创建下级元素结点
MSXML2::IXMLDOMElementPtr pXMLEleSub = NULL;
pXMLEleSub = pXMLDoc->createElement(_T("file"));
pXMLEleSub->appendChild(pXMLDoc->createTextNode("SubElement"));
// 添加下级元素结点
pXMLEle->appendChild( pXMLEleSub );
*/
// 保存文档
pXMLDoc->save(_T("c:\\Test.xml"));
...
CoUninitialize();
ColderRain
2003-12-24
打赏
举报
回复
我只能使用MS的那个接口写。不可以使用第三方的东西。
sjzxyg
2003-12-24
打赏
举报
回复
用Xerces C++,很简单的
曾经的猎狐
2003-12-24
打赏
举报
回复
#include "stdafx.h"
#include "iostream.h"
#include "msxml.h"
#include "atlbase.h"
#import "msxml.dll" //引入类型库
#include "windows.h"
#include "stdio.h"
#include "string.h"
//#include "afx.h"
#include <iostream.h>
#include "cstringt.h"
//#include "file.h"
#include "atlstr.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
int Exit();
void LoadFromString();
void CreateXML();
//XML文本模板
//_bstr_t XMLTemple="<China><Beijing> -12 </Beijing><Shanghai Weather='Cloudy'> 9 </Shanghai><Beijing>-20</Beijing></China>";
CString XMLTemple="<Connection Action='UploadASMResult'><VehicleInfo License='sd3' LicenseClass='34s' VLTID='21' Mileage='1' RegDate='2000-12-11 12:11:14' OwnerName='12' OwnerAddr='12' BodyColor='343' EngineID='3445' VIN='5434' Cleaners='34'></VehicleInfo><ASMResult TestID='213d' License ='ads2' LicenseClass='231a' StationID ='2da' EISID='2ea' OperatorID='2ea' AmbientTemp='2.5' AmbientHum='2.5' Pressure='1' TestStartTime='2002-12-11 11:12:11' TestEndTime='2004-10-11 11:12:11' AmbientHC='2.2' AmbientCO ='2.2' AmbientNO='2.2' ResidualHC ='2.2' Is5024Done='1' 5024HC = '2.2' 5024CO='2.2' 5024NO = '2.2' 5024Rotary='2.2' 5024Result='2.2' Is2540Done='0' 2540HC='2.2' 2540CO='2.2' 2540NO='2.2' 2540Rotary='2.2' 2540Result='2.2' Result='2' IsGasCapTested='1' GasCapResult='12' OutlookResult='54' AbortReason='66456'></ASMResult></Connection>";
int main()
{
cout << " XML编程--示范程序 " << endl;
CoInitialize(NULL); //初始化COM 环境
cout << "------生成新的XML文本 ------" << endl;
CreateXML();
cout << "------读取已有XML文本 ------" << endl;
LoadFromString();
return Exit();
}
void CreateXML()
{
MSXML::IXMLDOMDocumentPtr pDoc;
HRESULT hr =pDoc.CreateInstance(__uuidof(MSXML::DOMDocument));
if(!SUCCEEDED(hr))
{
cout << "无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库!" << endl;
Exit();
}
MSXML::IXMLDOMElementPtr pDocElement=pDoc->createElement("China");
pDoc->appendChild(pDocElement);
cout << "生成树根:\n" << pDoc->xml << endl;
MSXML::IXMLDOMElementPtr pNewChildElement,pNewChildElement1;
pNewChildElement=pDoc->createElement("Beijing");
pNewChildElement->Puttext("-11");
pDocElement->appendChild(pNewChildElement);
cout << "添加节点:\n" << pDoc->xml << endl;
pNewChildElement=pDoc->createElement("Shanghai");
pNewChildElement->Puttext("9");
pNewChildElement->setAttribute("Weather",_variant_t("Cloudy"));
pDocElement->appendChild(pNewChildElement);
pNewChildElement=pDoc->createElement("DEFINE");
pNewChildElement1=pDoc->createElement("ID");
pNewChildElement->appendChild(pNewChildElement1);
pDocElement->appendChild(pNewChildElement);
cout << "再添加节点:\n" << pDoc->xml << endl;
char buf[1024];
memset(buf,0,1024);
strcat(buf,pDoc->xml);
//sprintf(buf,"%s",pDoc->xml);
FILE *p;
p=fopen("xxx.xml","w");
fwrite(buf,1,strlen(pDoc->xml),p);
fclose(p);
pDocElement->removeChild (pNewChildElement);
cout << "把刚加入的节点删除:\n" << pDoc->xml << endl;
}
void LoadFromString()
{
MSXML::IXMLDOMDocumentPtr pDoc;
HRESULT hr =pDoc.CreateInstance(__uuidof(MSXML::DOMDocument));
if(!SUCCEEDED(hr))
{
cout << "无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库!" << endl;
Exit();
}
_bstr_t name;
pDoc->loadXML((_bstr_t)XMLTemple);
cout << "读取结果:\n" << pDoc->xml << endl;
MSXML::IXMLDOMElementPtr pDocElement=pDoc->GetdocumentElement();
_variant_t var;
MSXML::IXMLDOMElementPtr pElement=pDocElement->selectSingleNode("Connection");
var=pElement->getAttribute("Action");
cout<<var.cVal<<endl;
cout<<var.cVal<<endl;
cout<<var.cVal<<endl;
cout<<var.cVal<<endl;
cout<<var.cVal<<endl;
cout<<var.bstrVal<<endl;
cout<<var.cVal<<endl;
cout<<var.cVal<<endl;
cout<<var.cVal<<endl;
cout<<var.cVal<<endl;
cout<<var.cVal<<endl;
cout<<var.cVal<<endl;
cout<<var.cVal<<endl;
//pDocElement->removeChild(pElement);
MSXML::IXMLDOMNodeListPtr pLists = pDocElement->selectNodes("ASMResult");
long n = pLists->Getlength();
for (int i = 0; i < n; i++)
{
MSXML::IXMLDOMElementPtr pDocElement = pLists->Getitem(i);
cout << pDocElement->Gettext() << endl;
}
cout << "定位删除Shanghai节点:\n" << pDoc->xml << endl;
cout << "保存结果 Save .....(模拟而已)" << endl;
cout << "\n 好了,就这么简单" << endl;
}
int Exit()
{
getchar();
return 1;
}
bluebohe
2003-12-24
打赏
举报
回复
我当时就是照书来的
bluebohe
2003-12-24
打赏
举报
回复
去书店找本书吧
ColderRain
2003-12-23
打赏
举报
回复
人都到那里去了。
python
xml
文件
读写
使用之
xml
.dom.minidom
本文介绍了Python使用DOM模型
读写
XML
文件的方法,包括创建
XML
结构、写入属性值以及读取和修改指定属性。示例
代码
详细展示了如何创建和解析
XML
文档,以及如何更新文件内容。此外,还提及了其他如
xml
.etree.ElementTree和SAX的
XML
处理模块。
QT
读写
XML
文件,
XML
读写
复杂结构体
博客围绕
XML
文件展开,介绍了根据文件格式进行
读写
分析的方法,还提及可按格式创建更复杂的
XML
文件,同时说明了读取时若有问题可
参考
另一文章,重点阐述了创建
XML
文件和读取
XML
数据的内容。
【Python--
XML
文件
读写
】
XML
文件
读写
详解
本文详细介绍了Python中使用
xml
.etree.ElementTree模块来处理
XML
文件的方法,包括如何创建
XML
文件、解析
XML
内容以及对
XML
元素的增删操作。示例
代码
展示了如何创建
XML
结构以及读取
XML
文件中的特定标签和属性。
XML
读写
本文通过实际案例介绍了Tiny
XML
与Tiny
XML
2这两种流行的
XML
解析库的使用方法,包括
XML
文件的创建、读取及操作技巧。
Qt之
XML
读写
操作——含Demo
本文介绍Qt中
XML
的
读写
操作。Qt
Xml
模块提供
读写
XML
文件的流,解析方法有DOM和SAX。使用
XML
模块需在.pro文件添加QT +=
xml
。详细阐述了
XML
写操作中QDomDocument类等的作用,以及读操作中对象树和QDom类的使用,还给出运行结果和Demo下载链接。
HTML/XML
3,056
社区成员
8,075
社区内容
发帖
与我相关
我的任务
HTML/XML
VC/MFC HTML/XML
复制链接
扫一扫
分享
社区描述
VC/MFC HTML/XML
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章