将xml存储在xml中

non*_*one 9 xml delphi xml-serialization delphi-2009 omnixml

使用OmniXML包,是否可以将XML代码存储在具有自己的XML数据的另一个XML文件中?

像这样:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
<data>
   <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      <otherxml>data</otherxml>
</data>
Run Code Online (Sandbox Code Playgroud)

在标签数据里面,一切都应该是数据.是否存在防止解析器将下一个数据解析为XML数据结构的转义字符?

或者OmniXML是否支持这种情况的序列化?

任何其他简单的想法也欢迎.

Mik*_*sen 21

你可以使用CDATA:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
<data>
   <![CDATA[
   <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      <otherxml>data</otherxml>
   ]]>
</data>
Run Code Online (Sandbox Code Playgroud)

请注意,当您获取值时data,它将作为一个字符串,因此您必须通过新的XML解析器运行它.

以下是omniXML的示例代码:

var
  xml:IXMLDocument;
  Node:IXMLNode;
begin
  xml := CreateXMLDoc;    
  xml.SelectSingleNode('/root/data',Node);
  ShowMessage(GetNodeCData(Node,'data',''));
end;
Run Code Online (Sandbox Code Playgroud)

  • +1,最好说_你必须使用CDATA_;) (6认同)