我正在以XML格式阅读和编写Java Properties文件。许多属性值都嵌入了HTML,开发人员将其包含在[[CDATA
元素中,如下所示:
<entry key="foo"><![CDATA[
<b>bar</b>
]]></entry>
但是,当我使用Java API加载这些属性并稍后将它们写回XML时,它不会将这些条目包装在CDATA元素中,而是转义标记,如下所示:
<entry key="foo"><b>bar</b></entry>
这两种格式是否相同?我是否通过使用转义标签替换CDATA来引入任何潜在问题?
答案 0 :(得分:2)
不相同,但通过调用getText()
获得的文本值是相同的。
但是,我建议你放弃Properties
支持 JAXB 解析的真实XML - 它很棒,你会喜欢它。
没有找到任何好的,所以至少这些:
对象 - &gt; XML:here
Sun的详细教程:http://java.sun.com/webservices/docs/2.0/tutorial/doc/JAXBUsing.html
答案 1 :(得分:1)
当文件被加载到Properties对象的内存中时,你所显示的两种格式之间没有区别,正如OndraŽižka的回答。 CDATA部分是一种逃避文本块而不是转义其中每个字符的方法。
我会自己考虑非xml属性文件格式,您将继续看到原始文件中的标记,但需要转义换行符。
答案 2 :(得分:0)
是的,您可能会遇到一些问题,具体取决于数据的使用方式。
例如,如果您在HTML页面中使用它,A<br>B
将打印为
A
B
但A<br>B
将显示为
A<br>B