我一直都在寻找各种业务功能的最简单写法,用减法的模式来开发软件。如果有比我的写法更简单的方法,请留言告知。
我们再使用的时候,往往需要包含这些特殊字符,要求保持这些特殊字符不变。
这个时候就需要用<![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;