我遇到了一个非常有趣的难题,我花了2天时间寻找解决方案,但我放弃了,也许你们中的一些人经历了类似的事情,并可能为我提供一些提示。
所以,我有XML字符串,例如(这些仅是摘录):
<Row>
<Component>
<Data><![CDATA[<p>soem very long text.... let's assume 1000 characters </p>]]></Data>
</Component>
</Row>
<Row>
<Component>
<Data><![CDATA[<p>short text</p>]]></Data>
</Component>
</Row>
在使用xmlbeans将其解析为XML对象之后,我最终得到了st像这样:
<Row>
<Component>
<Data><![CDATA[<p>soem very long text.... let's assume 1000 characters </p>]]></Data>
</Component>
</Row>
<Row>
<Component>
<Data><p>short text</p>></Data>
</Component>
</Row>
这两行具有完全相同的结构,唯一的区别是CDATA中的文本长度。 我尝试使用XmlOptions
xmlOptions.setSaveCDataLengthThreshold(x);
xmlOptions.setSaveCDataEntityCountThreshold(x);
在所有可能的混合中都被忽略,但结果始终是相同的... CDATA包含短文本时将被删除,我想避免这种情况……