我一直都在寻找各种业务功能的最简单写法,用减法的模式来开发软件。如果有比我的写法更简单的方法,请留言告知。

我们再使用的时候,往往需要包含这些特殊字符,要求保持这些特殊字符不变。
这个时候就需要用<![CDATA[ 我是保持不影响XML解析的特殊字符”<>’等 ]]> 把特殊字符包含起来,夜深了,我累了 上demo。

procedure TForm4.btn1Click(Sender: TObject);
var
I: Integer;
MyQXML: TQXML;
begin
MyQXML := TQXML.Create;
try
MyQXML.Parse(mmo1.Lines.Text);
//修改其中几项的值
for I := 0 to (MyQXML.ItemByPath('layout').Count - 1) do
begin
if rb1.Checked then
begin
//初学者容易犯的一个错误就是手工编码的方式写入CDATA,这样搞会导致AxXML时CDATA中的内容依然会被转义.
MyQXML.ItemByPath('layout').Items[I].ItemByName('text').Text := '<![CDATA[<%=_data.' + MyQXML.ItemByPath('layout').Items[I].AttrByPath('text', 'value').Value + '%>]]>';
end else begin
//正规增加CDATA的方法
MyQXML.ItemByPath('layout').Items[I].ItemByName('text').AddCData('<%=_data.' + MyQXML.ItemByPath('layout').Items[I].AttrByPath('text', 'value').Value + '%>');
end;
MyQXML.ItemByPath('layout').Items[I].AttrByPath('text', 'value').Value := '';
end;
mmo2.Lines.Clear;
mmo2.Lines.Add(MyQXML.AsXML);
finally
MyQXML.Free;
end;
end;
