随笔 - 2146  文章 - 19 评论 - 11846 阅读 - 1267万


uses NativeXml;

procedure TForm1.Button1Click(Sender: TObject);
var
  xml: TNativeXml;
  node: TXmlNode;
begin
  xml := TNativeXml.CreateName('List');
  xml.XmlFormat := xfReadable;

  node := xml.NodeNewTextType('注释名称', '注释内容', xeComment);
  xml.Root.NodeAdd(node);

  node := xml.NodeNewTextType('item', '张三', xeElement);
  xml.Root.NodeAdd(node);

  Memo1.Text := xml.WriteToString;
  xml.Free;
end;
{***************************************
<?xml version="1.0" encoding="UTF-8"?>
<List><!--注释内容-->
	<item>张三</item>
</List>
*****************************************}

procedure TForm1.Button2Click(Sender: TObject);
var
  xml: TNativeXml;
  node: TXmlNode;
begin
  xml := TNativeXml.CreateName('List');
  xml.XmlFormat := xfReadable;

  node := xml.NodeNewTextType('item', '张三', xeElement, [xml.AttrText('ID', '1'), xml.AttrInt('age', 11)]);
  xml.Root.NodeAdd(node);

  Memo1.Text := xml.WriteToString;
  xml.Free;
end;
{***************************************
<?xml version="1.0" encoding="UTF-8"?>
<List>
	<item ID="1" age="11">张三</item>
</List>
*****************************************}

procedure TForm1.Button3Click(Sender: TObject);
var
  xml: TNativeXml;
  node: TXmlNode;
begin
  xml := TNativeXml.CreateName('List');
  xml.XmlFormat := xfReadable;

  node := xml.NodeNewTextTypeAttr('item', '', xeElement, [xml.AttrText('ID', '1')], [xml.NodeNewText('name', '张三'), xml.NodeNewInt('age', 11)]);
  xml.Root.NodeAdd(node);

  Memo1.Text := xml.WriteToString;
  xml.Free;
end;
{***************************************
<?xml version="1.0" encoding="UTF-8"?>
<List>
	<item ID="1">
		<name>张三</name>
		<age>11</age>
	</item>
</List>
*****************************************}

procedure TForm1.Button4Click(Sender: TObject);
var
  xml: TNativeXml;
  node: TXmlNode;
begin
  xml := TNativeXml.CreateName('List');
  xml.XmlFormat := xfReadable;

  node := xml.Root.NodeNew('Data1');
  node.NodeAdd(xml.NodeNewTextType('DataName', 'XXXXXXXXXXXX', xeCData));

  Memo1.Text := xml.WriteToString;
  xml.Free;
end;
{***************************************
<?xml version="1.0" encoding="UTF-8"?>
<List>
	<Data1><![CDATA[XXXXXXXXXXXX]]></Data1>
</List>
*****************************************}

procedure TForm1.Button5Click(Sender: TObject);
var
  xml: TNativeXml;
begin
  xml := TNativeXml.CreateName('List');
  xml.XmlFormat := xfReadable;

  xml.Root.NodeAdd(xml.NodeNewTextType('aaa', 'AAAAAAA', xeElement));
  xml.Root.NodeAdd(xml.NodeNewTextType('bbb', 'BBBBBBB', xeAttribute));
  xml.Root.NodeAdd(xml.NodeNewTextType('ccc', 'CCCCCCC', xeComment));
  xml.Root.NodeAdd(xml.NodeNewTextType('ddd', 'DDDDDDD', xeCData));
  xml.Root.NodeAdd(xml.NodeNewTextType('eee', 'EEEEEEE', xeCondSection));
  xml.Root.NodeAdd(xml.NodeNewTextType('fff', 'FFFFFFF', xeStylesheet));
  xml.Root.NodeAdd(xml.NodeNewTextType('ggg', 'GGGGGGG', xeDocType));
  xml.Root.NodeAdd(xml.NodeNewTextType('hhh', 'HHHHHHH', xeDtdElement));
  xml.Root.NodeAdd(xml.NodeNewTextType('iii', 'IIIIIII', xeDtdAttList));
  xml.Root.NodeAdd(xml.NodeNewTextType('jjj', 'JJJJJJJ', xeDtdEntity));
  xml.Root.NodeAdd(xml.NodeNewTextType('kkk', 'KKKKKKK', xeDtdNotation));
  xml.Root.NodeAdd(xml.NodeNewTextType('lll', 'LLLLLLL', xeInstruction));
  xml.Root.NodeAdd(xml.NodeNewTextType('mmm', 'MMMMMMM', xeCharData));
  xml.Root.NodeAdd(xml.NodeNewTextType('nnn', 'NNNNNNN', xeWhiteSpace));
  xml.Root.NodeAdd(xml.NodeNewTextType('ooo', 'OOOOOOO', xeQuotedText));

  Memo1.Text := xml.WriteToString;
  xml.Free;
end;
{***************************************
<?xml version="1.0" encoding="UTF-8"?>
<List bbb="BBBBBBB"NNNNNNN>
	<aaa>AAAAAAA</aaa>
	<!--CCCCCCC-->
	<![CDATA[DDDDDDD]]>
	<!--EEEEEEE-->
		<?xml-stylesheetFFFFFFF?>

 [
GGGGGGG]>
<!ELEMENT hhh HHHHHHH>
<!ATTLIST iii IIIIIII>
<!ENTITY jjj JJJJJJJ>
<!NOTATION kkk KKKKKKK>
		<?LLLLLLL?>

	MMMMMMM
	"OOOOOOO"
</List>
*****************************************}

posted on   万一  阅读(4998)  评论(2编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
历史上的今天:
2008-03-25 System.Insert - 插入字符串
2008-03-25 System.Delete - 从字符串中删除
2008-03-25 System.Copy - 从字符串或数组中复制


点击右上角即可分享
微信分享提示