写XML文件注释

calmhawkaaa 2006-12-18 07:18:53
<?xml version="1.0" encoding="GB2312" ?>
<!--这里加这样一个注释如何加-->
<package>
<head>
<code_type>0</code_type>
<hospital_code>111111</hospital_code>
<create_time>2006-12-17</create_time>
</head>
....
....



写如上这样一个XML 文件, 想在<?xml version="1.0" encoding="GB2312" ?> 这句下面加一个注释,如何加的?

我的代码:
MDoc:TXMLDocument;
begin
MDoc:=TXMLDocument.Create(nil);
MDoc.Active := true; //激活XMLDoc
MDoc.Version := '1.0';
MDoc.Encoding := 'GB2312'; //设置字符集
//加入根结点
aNode:=MDoc.AddChild('package');
//加入子结点
aNode1:=aNode.AddChild('head');
aNode2:= aNode1.AddChild('code_type');
...
...

MDoc.CreateNode('注释',ntNotation,'') 这个是不是加注释的,不会用,报错,IDOMNode required



...全文
400 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
小安安 2006-12-21
  • 打赏
  • 举报
回复
Uses XMLIntf, XMLDoc

....


procedure TForm1.Button1Click(Sender: TObject);
var
Doc: TXMLDocument;
Root: IXMLNode;
AStr: String;
i: Integer;
begin
Doc := TXMLDocument.Create(Self);
Doc.Active := True;
Doc.Encoding := 'GB2312';
Doc.AddChild('Package');
AStr := Doc.XML.Text;
i := Pos('?>', AStr);
Inc(i, 2);
if i > 0 then
Insert('<!--接分啊-->', AStr, i);
Doc.XML.Text := AStr;
end;
小安安 2006-12-21
  • 打赏
  • 举报
回复
可以考虑一下用字符串而不用IXMLDocument, 如:
A := '<?xml version="1.0" encoding="GB2312" ?> %s';
Format(A, ['<!--我要在这加注释-->']);
calmhawkaaa 2006-12-20
  • 打赏
  • 举报
回复
高人指点下啊

calmhawkaaa 2006-12-19
  • 打赏
  • 举报
回复
<?xml version="1.0" encoding="GB2312" ?>
<!--我要在这加注释-->
zuoansuifeng 2006-12-19
  • 打赏
  • 举报
回复
你不是要在加了节点然后加属性吗 ?
还有一种死办法 以字符窜的方式加进XML~~
calmhawkaaa 2006-12-19
  • 打赏
  • 举报
回复
zuoansuifeng(命运的砂粒,总在某个时刻找上门,无法抗拒) 兄

nmm_xmlnode.Attributes['name'] := 5678; 这是设置属性吧
zuoansuifeng 2006-12-19
  • 打赏
  • 举报
回复
定义一个
nmm_xmlnode: IXMLNode;

nmm_xmlnode.Attributes['name'] := 5678;
calmhawkaaa 2006-12-19
  • 打赏
  • 举报
回复
感谢 liangqingzhi(老之) 兄 和 merkey2002(小样的) 兄

MDoc.DocumentElement.ChildNodes.Insert(0,MDoc.CreateNode('1234',ntComment,''));

这句可以,却只能加到根结点下 :

<?xml version="1.0" encoding="GB2312" ?>
<package>
<!--1234-->
<head>
...

我想加到 :
<?xml version="1.0" encoding="GB2312" ?>
<!--1234-->
<package/>
....

要如何写呢?

谢谢,
merkey2002 2006-12-18
  • 打赏
  • 举报
回复
用ntComment
MDoc.DocumentElement.ChildNodes.Insert(0,MDoc.CreateNode('1234',ntComment,''));
老之 2006-12-18
  • 打赏
  • 举报
回复
试下:
MDoc.DocumentElement.ChildNodes.Insert(0,MDoc.CreateNode('1234',ntCData,''));

5,939

社区成员

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

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