XMLDocReceive := NewXMLDocument;
XMLDocReceive.Active := True; //激活OutXMLDoc,自动初始化空的XML文档
XMLDocReceive.Encoding := 'UTF-8'; //设置字符集
ARootNode := XMLDocReceive.AddChild('Message1'); //建根结点
ARootNode.SetAttribute('xmlns', 'http://www.163.com');
AChildNode := ARootNode.AddChild('version');
AChildNode.NodeValue := '1.0';
XMLDocReceive.XML.SaveToFile(ExtractFilePath(ParamStr(0)) + 'test.xml');
XMLDocReceive.Active := False;
生成的XML如下:
<?xml version="1.0" encoding="UTF-8" ?>
<Message1 xmlns="http://www.163.com">
<version xmlns="">1.0</version>
</Message1>
我的问题是为什么子节点的Version后面也会出现xmlns=""的属性,请问如何去掉?
XMLDocReceive.Active := True; //激活OutXMLDoc,自动初始化空的XML文档
XMLDocReceive.Encoding := 'UTF-8'; //设置字符集
ARootNode := XMLDocReceive.AddChild('Message1'); //建根结点
ARootNode.SetAttribute('xmlns', 'http://www.163.com');
AChildNode := ARootNode.AddChild('version');
AChildNode.NodeValue := '1.0';
XMLDocReceive.XML.SaveToFile(ExtractFilePath(ParamStr(0)) + 'test.xml');
XMLDocReceive.Active := False;
生成的XML如下:
<?xml version="1.0" encoding="UTF-8" ?>
<Message1 xmlns="http://www.163.com">
<version xmlns="">1.0</version>
</Message1>
我的问题是为什么子节点的Version后面也会出现xmlns=""的属性,请问如何去掉?
解决方案 »
- 急求研祥工控机的看门狗程序小例子!
- 通过指针操作对象问题,谢谢大家了。
- GGJJ,一个关于Array转化成String类型的问题!紧急求救!谢谢!
- 往dbf表中插入汉字时出现问题,汉字都显示成了问号,有什么办法可以解决吗?
- 寻找
- 在delphi中如何得到某个目录里的所有文件夹名,加入到memo中
- 在SQLServer7.0中两台机器的数据库HS的表FuncTree的相互更新
- 我谁有DBF数据库的修复工具
- 问两个问题:1:关于鼠标坐标,2:关于右键菜单
- 请教ado连接到sql7使用oledb for sql与oledb for odbc的问题
- 控件数组怎么对应Form上面的控件?
- delphi 中ftp下载运行
ARootNode:=XMLDocReceive.CreateNode('Message1');
XMLDocReceive.DocumentElement:=ARootNode;
结果是一样的,子节点都会出现xmlns的属性!
....
FComp:TComponent.create(nil)
XMLDocReceive := TXMLDocument.create(FComp);
try
XMLDocReceive.Active := True; //激活OutXMLDoc,自动初始化空的XML文档
XMLDocReceive.Encoding := 'UTF-8'; //设置字符集
ARootNode:=XMLDocReceive.CreateNode('Message1'); //建根结点
XMLDocReceive.DocumentElement:=ARootNode;
ARootNode.Attributes['xmlns']:='http://www.163.com';
AChildNode := ARootNode.AddChild('version');
AChildNode.NodeValue := '1.0';
XMLDocReceive.SaveToFile(ExtractFilePath(ParamStr(0)) + 'test.xml');
finally
XMLDocReceive.free;
FComp.free;
end;这么用应该没问题的,我一直都是这么用的
procedure TForm1.FormCreate(Sender: TObject);
var
ARootNode, AChildNode: IXMLNode;
begin
Doc.Active := True; //激活OutXMLDoc,自动初始化空的XML文档
Doc.Encoding := 'UTF-8'; //设置字符集
ARootNode:= Doc.CreateElement('Message1', 'http://www.163.com');//正常建立
Doc.DocumentElement:= ARootNode;
// ARootNode := Doc.AddChild('Message1'); //建根结点
// ARootNode.SetAttribute('xmlns', 'http://www.163.com');
AChildNode := ARootNode.AddChild('version');
AChildNode.NodeValue := '1.0';
Doc.XML.SaveToFile(ExtractFilePath(ParamStr(0)) + 'test.xml');
Doc.Active := False;
end;
<?xml version="1.0" encoding="UTF-8"?>
<Message1 xmlns="http://www.163.com"><version xmlns="">1.0</version></Message1>//==============
建立根应该Doc.CreateElement('Message1', 'http://www.163.com'),这样就不会出现这种情况,我已经试过了。对直接AddChild为什么会出现你说的情况也感兴趣,希望有高人解答