社区
HTML/XML
帖子详情
谁能给我点XML读写的代码让我参考一下。
ColderRain
2003-12-23 09:43:52
加精
我刚接触XML,对XML不熟悉,现在没有时间学习。
能否给出代码实现如下功能:
1.创建一个XML文件
2.随便将一个字符串写进去
3.将上一部中的字符串读出来。
如能提供VC读写XML的资料更好。
...全文
131
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
打赏
举报
回复
人都到那里去了。
java源码包---java 源码 大量 实例
1个目标文件,JNDI的使用例子,有源
代码
,可以下载
参考
,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高...
c语言实现
xml
文件的
读写
,Read
Xml
软件简介本插件实现对
xml
文件的
读写
,此版本只实现对标准
xml
文档的标签,标签属性,标签值,预定义的实体引用进行处理。由C语言实现,较适合处理大型
xml
文档,处理速度较快。本插件遵循GPL协议。术语开始标签:
xml
中...
XML
必知必会:Java、C#、Python多种语言解析
XML
文档
、XPath节点和XPath语法 第7章 解析
XML
文档 解析
XML
文档概述、DOM解析
XML
、SAX解析
XML
第8章 Java语言解析
XML
DOM4J概述、示例:遍历节点、示例:插入节点、示例:删除节点 第9章 Python语言解析
XML
ElementTree模块...
【C#】
XML
读写
与dataGridView的使用
C#直接是自有包可以轻松对
XML
完成
读写
。下面用一个程序展示C#如何对
XML
进行
读写
。如下图所示,有一个窗体程序,可以
读写
XML
。 下面是写入
XML
功能的展示。 下面是读
XML
的展示,并且修改之后再写入: 具体...
python
读写
xml
文件
1.python创建
xml
使用
xml
.etree.ElementTree来操作
xml
创建节点:root = ET.Element('root', attribute), 其中, attribute是属性字典,需要属性时可以添加 创建文档:tree = ET.ElementTree(root) 设置文本...
HTML/XML
3,055
社区成员
8,066
社区内容
发帖
与我相关
我的任务
HTML/XML
VC/MFC HTML/XML
复制链接
扫一扫
分享
社区描述
VC/MFC HTML/XML
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章