NativeXml V4.02根节点添加属性问题

jxqn_liu 2012-07-30 03:46:46
这是写XML的部分代码

//设置导出到XML中的XML头
function DoSetXMLHead(AData: TdataSet): Boolean;
var
FNodeXML, SNodeXML: TXmlNode;
i: Integer;
begin
Result := False;
if not Assigned(XMLObject) then
XMLObject := TNativeXml.Create(Self);

try
XMLObject := TNativeXml.CreateName('DATAPACKET');
XMLObject.AttrText('Version', '2.0');
XMLObject.IndentString := ' '; //缩进空格数
XMLObject.XmlFormat := xfReadable;

FNodeXML := XMLObject.Root.NodeNew('METADATA');
SNodeXML := FNodeXML.NodeNew('FIELDS');

for i := 0 to AData.FieldCount - 1 do
begin
with SNodeXML.NodeNew('FIELD') do
begin
AttributeAdd('attrname', AData.Fields[i].FieldName);
AttributeAdd('fieldtype', 'string'); //待定
AttributeAdd('width', '20'); //待定
end;
end;

Result := True;
except
if XMLObject <> nil then XMLObject.Free;
end;
end;


这样生成出来的结果如下:

<?xml version="1.0" encoding="utf-8"?>
<DATAPACKET> //注意:这里的Version=2.0没有写入
<METADATA>
<FIELDS>
<FIELD attrname="ProviderID" fieldtype="string" width="20"/>
<FIELD attrname="TypeID" fieldtype="string" width="20"/>
<FIELD attrname="TypeName" fieldtype="string" width="20"/>
<FIELD attrname="Caption" fieldtype="string" width="20"/>
<FIELD attrname="Length" fieldtype="string" width="20"/>
</FIELDS>
</METADATA>
<ROWDATA>
</ROWDATA>
</DATAPACKET>


在上述代码中,通过
XMLObject := TNativeXml.CreateName('DATAPACKET');
XMLObject.AttrText('Version', '2.0');
写入不了根节点的值,请问这是什么原因造成的?
...全文
200 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jxqn_liu 2012-07-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

Delphi(Pascal) code

{ // XMLObject.AttrText('Version', '2.0');}
XMLObject.Root.AttributeAdd('Version', '2.0');
[/Quote]
YES,谢谢兄台!
Frank.WU 2012-07-30
  • 打赏
  • 举报
回复

{ // XMLObject.AttrText('Version', '2.0');}
XMLObject.Root.AttributeAdd('Version', '2.0');
内容概要:本文研究了基于QLearning自适应强化学习的PID控制器在自主水下航行器(AUV)中的应用,通过Matlab代码实现了对水下机器人的动力学建模与运动控制。重点探讨了将强化学习算法QLearning与传统PID控制相结合的方法,以提升AUV在复杂、时变及非线性水下环境中的自适应控制能力。文中系统分析了AUV的运动学与动力学特性,阐述了传统PID参数整定面临的挑战,并提出采用QLearning算法在线动态优化PID控制器的比例、积分和微分参数,从而实现对系统误差、响应速度、超调量等性能指标的综合优化。通过Matlab仿真实验验证了该复合控制策略在轨迹跟踪精度、抗外部干扰能力和系统鲁棒性方面的显著优势,充分展示了强化学习在智能水下装备自主控制领域的可行性和应用潜力。; 适合人群:具备自动控制理论基础、强化学习基础知识及Matlab编程能力的研究生、科研人员和自动化、海洋工程、机器人等相关领域的技术研发人员。; 使用场景及目标:①用于水下机器人、无人潜航器等智能移动装备的高精度运动控制系统设计与开发;②开展强化学习与经典控制理论融合创新的教学案例与科学研究;③解决传统固定参数PID控制器在面对模型不确定性和环境扰动时适应性差、控制性能下降的关键问题。; 阅读建议:建议读者结合提供的Matlab代码进行仿真实践,重点关注QLearning算法中状态空间、动作空间的设计逻辑以及奖励函数的构建原则,深入理解其在参数寻优过程中的作用机制,并可通过调整环境参数和初始条件来测试算法的鲁棒性与泛化能力。

5,943

社区成员

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

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