您的位置:首页 > 其它

如何用vc创建和读取xml文件??

2009-06-27 10:16 639 查看

如何用vc创建和读取xml文件??

楼主
cwcsdn(nic)
2005-04-28 00:23:32 在 VC/MFC / 基础类 提问

能给一个简单的例子吗??
问题点数:60、回复次数:7
Top

1 楼
edaynet(忆天)

回复于 2005-04-28 05:19:36 得分 60

void CXmlDlg::OnCreate()

{

MSXML2::IXMLDOMDocumentPtr pDoc;

MSXML2::IXMLDOMElementPtr xmlRoot ;

HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument30));

if(!SUCCEEDED(hr))

{

MessageBox("无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库!");

}

pDoc->raw_createElement((_bstr_t)(char*)"china", &xmlRoot);

//MSXML2::IXMLDOMNodePtr childnode = xmlnode;

pDoc->raw_appendChild(xmlRoot, NULL);

MSXML2::IXMLDOMElementPtr childNode ;

pDoc->raw_createElement((_bstr_t)(char*)"City", &childNode);

childNode->Puttext("WuHan");

childNode->setAttribute("population","8,000,000");

childNode->setAttribute("area","10000");

xmlRoot->appendChild(childNode);

pDoc->raw_createElement((_bstr_t)(char*)"City", &childNode);

childNode->Puttext("ShangHai");

childNode->setAttribute("population","12,000,000");

childNode->setAttribute("area","12000");

xmlRoot->appendChild(childNode);

pDoc->save("f://he.xml");

}

void CXmlDlg::OnGet()

{

MSXML2::IXMLDOMDocumentPtr pDoc;

HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument30));

if(!SUCCEEDED(hr))

{

MessageBox("无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库!");

}

pDoc->load("f://he.xml");

MSXML2::IXMLDOMElementPtr childNode ;

childNode =
(MSXML2::IXMLDOMElementPtr)(pDoc->selectSingleNode("//City"));

MSXML2::DOMNodeType nodeType;

childNode->get_nodeType(&nodeType);

BSTR var;

CString name;

childNode->get_nodeName(&var);

name = (char*)(_bstr_t)var;

VARIANT varVal;

childNode->get_nodeTypedValue(&varVal);

CString strValue = (char*)(_bstr_t)varVal;

MSXML2::IXMLDOMNamedNodeMapPtr pAttrs = NULL;

MSXML2::IXMLDOMNodePtr pAttrItem;

childNode->get_attributes(&pAttrs);

long nCount ;

pAttrs->get_length(&nCount);

for(int i = 0 ; i < nCount ; i++)

pAttrs->get_item(i,&pAttrItem);

}

Top

2 楼
juststone(灰虫轨迹)

回复于 2005-04-28 06:42:11 得分 0

CMarkup http://www.firstobject.com/


CMarkup xml;

xml.AddElem( "ORDER" );

xml.AddChildElem( "ITEM" );

xml.IntoElem();

xml.AddChildElem( "SN", "132487A-J" );

xml.AddChildElem( "NAME", "crank casing" );

xml.AddChildElem( "QTY", "1" );

CString csXML = xml.GetDoc();

<ORDER>

<ITEM>

<SN>132487A-J</SN>

<NAME>crank casing</NAME>

<QTY>1</QTY>

</ITEM>

</ORDER>

条件是XML不能太大,在50M以内最好

tinyxml 好像也不错,不过没用过
http://sourceforge.net/projects/tinyxml/ href="zotero://attachment/2041/#" target=_blank>Top

3 楼
cwcsdn(nic)

回复于 2005-04-28 13:47:16 得分 0

to edaynet 你跟我自己找的一样!

这个例子是创建一个文件,我是想做一个像日志一样,每天增加一条记录,保存的这个文件不断增大!Top

4 楼
edaynet(忆天)

回复于 2005-04-28 16:30:33 得分 0

你的问题目是:

如何用vc创建和读取xml文件??

现在又说“我是想做一个像日志一样,每天增加一条记录,保存的这个文件不断增大”。

你搞什么,不写清楚。 凸^_^凸Top

5 楼
rushinger(阮祥哥)

回复于 2005-04-28 16:33:52 得分 0

搞什么,害得人家瞎忙老半天Top

6 楼
xuzheng318(忧郁王子)

回复于 2005-04-28 16:34:40 得分 0

xml操作简单得例子

Dim makexml As New XmlDocument()

Dim newattr As XmlAttribute

makexml.LoadXml("<T><qiang><frametype><left>ok</left></frametype></qiang></T>")

Dim makexmlnode As XmlNode = makexml.SelectSingleNode("//qiang/frametype/left")

Dim newnode As XmlNode

newnode = makexml.CreateElement("data")

makexmlnode.AppendChild(newnode)

newattr = makexml.CreateAttribute("type")

newattr.Value = "login"

newnode.Attributes.Append(newattr)

Response.Write(Server.HtmlEncode(makexml.InnerXml))

Response.End()

Dim x As String

x = "<Treenode/>"

Dim d As New XmlDocument()

d.LoadXml((x))

Dim n As XmlAttribute

n = d.CreateAttribute("id")

n.Value = "abc"

d.DocumentElement.Attributes.Append(n)

n = d.CreateAttribute("text")

n.Value = "abc"

d.DocumentElement.Attributes.Append(n)

Response.Write(Server.HtmlEncode(d.OuterXml))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: