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');
写入不了根节点的值,请问这是什么原因造成的?
...全文
128 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');

5,392

社区成员

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

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