请问高手,如何用BCB操作XML文件?

struggle 2007-08-17 02:44:44
对java比较熟悉,现需要用BCB操作XML文件,请问有哪些组件可以用,以及如何用,谢谢了。
由于本人是桌面编程的新手,对C++语法熟悉,但对于BCB的操作不太懂,万望高手能够详细指导,再次谢谢!
...全文
894 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
laowang2 2007-08-18
  • 打赏
  • 举报
回复
mark
jingzhongrong 2007-08-17
  • 打赏
  • 举报
回复
用_di_IXMLDocument就可以不用TXMLDocument控件了
注意要#include <XMLDoc.hpp>
jingzhongrong 2007-08-17
  • 打赏
  • 举报
回复
#include <XMLDoc.hpp>
bool __fastcall ParseProjects::ParseVC2005Project(WideString strFileName)
{
_di_IXMLDocument xml;
xml = LoadXMLDocument(strFileName);
_di_IXMLNode node = xml->DocumentElement;

node->GetNodeName()
node->GetAttribute(L"ProjectType")
_di_IXMLNodeList ChildNodes = node->ChildNodes;
ChildNodes->Count;
ChildNodes->Nodes[i]->GetNodeName()
}
coolcalf 2007-08-17
  • 打赏
  • 举报
回复
转:自定义对xml操作的类
详见网址:http://tb.blog.csdn.net/TrackBack.aspx?PostId=49553


/*
//应用举例:下面的函数生成一个这样的XML文件。

<?xml version="1.0" encoding="UTF-16"?>
<root>
<成绩单 语文="98" 数学="108" 英语="88"/>
<体重>67</体重>
<身长>180</身长>
</root>

//------------------------------------------

void func()
{
myXML xml;
xml.init("d:\\1.xml");
xmlNode root = xml.root();
xmlNode node = root.get_child_node("成绩单");
node.set_attribute("语文","98");
node.set_attribute("数学","108");
node.set_attribute("英语","88");
node = root.get_child_node("体重");
node.set_value("67");
root.set_child_value("身长","180");
xml.save();
}
//---------------------------------------------------------------------
//---------------------------------------------------------------------
注意事项:
1,Build 以前,必须在程序中的某个Form上放一个 XMLDocument 控件(在Internet页),
然后完全编译(Project->Options->Linker->Use Dynamic RTL,Project->Options->
Packages->Build with runtime packages,两个对勾去掉),编译完成后,删掉这个
XMLDocument 控件即可。
2,由于此处myXML的初始化依赖于程序底层的XML解析器,而解析器的初始化是在程序启动后
完成的(在WinMain函数启动后),所以 myXML(AnsiString)构造函数和myXML.init()函数
不能在 WinMain()前被调用。啰嗦这些只有一个意思,就是:
你不能这样定义一个全局的xml变量:
myXML xml("d:\\test\\tt.xml"); //这种情况下xml不能正确初始化。

//---------------------------------------------------------------------
vc_dreamver 2007-08-17
  • 打赏
  • 举报
回复
不错!
fjye 2007-08-17
  • 打赏
  • 举报
回复
TXMLDocument控件

用法举例

TXMLDocument *XMLDoc_Lang;
XMLDoc_Lang->LoadFromFile(WideString(LangPath));
XMLDoc_Lang->Active=true;

AnsiString TMainForm::ReadLangText(AnsiString NodeName)
{
_di_IXMLNode node=XMLDoc_Lang->DocumentElement;
//DocumentElement属性用来得到根节点
_di_IXMLNodeList nodes=node->ChildNodes;
//得到子节点List
AnsiString temp = "";
for(int n=0;n<nodes->Count;n++)
{
for(int i=0;i<nodes->Nodes[n]->ChildNodes->Count;i++)
{
if(NodeName==nodes->Nodes[n]->ChildNodes->Nodes[i]->NodeName)
{
return Trim(nodes->Nodes[n]->ChildNodes->Nodes[i]->GetText());
}
}
}
return "";
}

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧