急。。。TNativeXml写xml 如何再次增加节点

奕诚 2012-09-19 11:17:15
想请教一下,TNativeXml怎么实现每点击一次按钮就新增加一个节点呢?我的情况是点击几次显示的都是最后那次的数据,我加for循环是增加了多个节点,但是节点内容都一样的。。。

try

{

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

{

node = ADoc->Root->NodeNew("item");


node->AttributeAdd("Modified value",Value);

node->AttributeAdd("Modified value before",beforeMValue);

node->AttributeAdd("Modified value after",afterMValue);

ADoc->XmlFormat = xfReadable;

ADoc->SaveToFile("tt.xml");

ADoc->

}

}

__finally

{

ADoc->Free();

}


...全文
135 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
奕诚 2012-09-19
  • 打赏
  • 举报
回复
是问题太棘手了还是我表述得不够清楚或者问得很幼稚呢?
我原来是用TXMLDocument的不过会报错,如下:
http://topic.csdn.net/u/20120911/14/8d25a437-5a3d-4ab4-9133-268ed75b6341.html
奕诚 2012-09-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
加节点,改变值代码没有问题,我测试了
ADoc定义全局变量,第二次用的时候还是此文件,可以继续写
或者loadfromFile装载文件,别每次写,覆盖了前面的内容啊
[/Quote]
十分感谢哈,“loadfromFile装载文件,别每次写,覆盖了前面的内容啊”问题已解决,就是内容覆盖的问题,我应该加载文件后再写的。O(∩_∩)O谢谢!!!
缘中人 2012-09-19
  • 打赏
  • 举报
回复
加节点,改变值代码没有问题,我测试了
ADoc定义全局变量,第二次用的时候还是此文件,可以继续写
或者loadfromFile装载文件,别每次写,覆盖了前面的内容啊
奕诚 2012-09-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
循环中的 Value beforeMValue afterMValue 三个变量值未发生变化,当然值一样了
[/Quote]
不一定要添加for循环的,我只是加个循环看看会不会创建多个节点……如果能实现每点击一次按钮,就增加一个节点,而节点的每个属性的值都会根据控件的标题变化的就可以的。
奕诚 2012-09-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
虽然是变量,但是在循环的过程中,这三个变量的值有变化么?
[/Quote]
是的,每点击一次按钮我会把某些控件的标题赋给那几个变量的。
也就是说我每点击一次按钮,就增加一个节点,而节点的每个属性的值都会根据控件的标题变化的。
ccrun.com 2012-09-19
  • 打赏
  • 举报
回复
虽然是变量,但是在循环的过程中,这三个变量的值有变化么?
奕诚 2012-09-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
改了你的例子
属性中间空格不允许

C/C++ code

int count;
TNativeXml *ADoc;
TXmlNode *node;
ADoc = new TNativeXml("root");
try
{
for(int i=0;i<count;i++)
{
node = ADoc->Root->NodeNew("item");
node->……
[/Quote]
谢谢你的认真解答,补充一下,Value、beforeMValue、afterMValue是变量来的。
缘中人 2012-09-19
  • 打赏
  • 举报
回复
改了你的例子
属性中间空格不允许

int count;
TNativeXml *ADoc;
TXmlNode *node;
ADoc = new TNativeXml("root");
try
{
for(int i=0;i<count;i++)
{
node = ADoc->Root->NodeNew("item");
node->AttributeAdd("Modifiedvalue","Value"+String(i));
node->AttributeAdd("Modifiedvaluebefore","beforeMValue"+String(i));
node->AttributeAdd("Modifiedvalueafter","afterMValue"+String(i));
ADoc->XmlFormat = xfReadable;
ADoc->SaveToFile("tt.xml");
}

}

__finally

{

ADoc->Free();

}
缘中人 2012-09-19
  • 打赏
  • 举报
回复
循环中的 Value beforeMValue afterMValue 三个变量值未发生变化,当然值一样了

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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