使用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>
在标签数据里面,一切都应该是数据。是否有一个转义字符串,阻止解析器将下一个数据解析为XML数据结构?
或者OmniXML是否支持这种情况的序列化?
欢迎任何其他简单的想法。
答案 0 :(得分: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>
注意当你获得data
的值时,它将是一个字符串,因此你必须通过一个新的XML解析器来运行它。
以下是omniXML的示例代码:
var
xml:IXMLDocument;
Node:IXMLNode;
begin
xml := CreateXMLDoc;
xml.SelectSingleNode('/root/data',Node);
ShowMessage(GetNodeCData(Node,'data',''));
end;
答案 1 :(得分:3)
如果不必立即读取数据中的内容,则可以将其编码为例如Base64或UUEncode。
然后您可以提取,解码和解析数据