首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

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

2012-09-04 
NativeXml V4.02根节点添加属性问题这是写XML的部分代码Delphi(Pascal) code//设置导出到XML中的XML头func

NativeXml V4.02根节点添加属性问题
这是写XML的部分代码

Delphi(Pascal) code
//设置导出到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 code
<?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');
写入不了根节点的值,请问这是什么原因造成的?


[解决办法]
Delphi(Pascal) code
  { // XMLObject.AttrText('Version', '2.0');}    XMLObject.Root.AttributeAdd('Version', '2.0'); 

热点排行