以人类可读方式将任意文本编码为XML的好方法是什么?
-
09-12-2019 - |
题
到目前为止,我到目前为止将文本放入CDATA标记,并通过将其拆分成多个相邻的CDatas来处理文本中出现的CDATA结束的可能性。
我不确定这一点,但XML解析器无法保留CDATA标签内部的纽约,正确吗?这意味着不知何故逃脱它们......
我想使用perl生成这些XML文件,并使用C ++(使用Expat),Java和C#来解析它们。
最重要的是,我希望得到的文件有点人类可读/可修改。有谁知道任何适合这些需求的编码方案?我正在使用它来存储数据库的数据,因此需要接受任意文本,并且在解析时返回完全相同的文本。
解决方案
XML已经支持这一点,你不需要做任何特别的事情,你当然不需要使用cdata。只需使用一个体面库,请确保使用UTF-8编码,然后添加文本节点。如果某些东西是“失败”的纽丁,那么这是一个错误。XML已经有一个“编码”(逃逸),相对人性可读。它也是标准的,这使得它比发明自己更有用。
其他提示
如果内容为HTML,则可以编码内容:
<html><b>Bold Text</b></html>
.
vs。
<html><![CDATA[<b>Bold Text</b>]]></html>
. 嗯,据我所知,CDATA部分是用于字符数据,并且控制字符不计算。我假设这意味着在纽诺斯的问题上,XML解析器会判断呼吁是否是控制字符或历史上(历史上,是的,但策略......)。
虽然它会损害可读性,但您可以使用转义序列编码纽单, 假设您正常逃脱,解析应该正确转换它,您只需要在编码时记下它。
完全违反“人类可读”要求的另一个选项是基本-64编码文本,这允许您在XML中编码任意信息。
不隶属于 StackOverflow