我们的应用程序运行良好,直到我在传入的 xml 中遇到 CDATA 部分。我知道 xml 中的 CDATA 是很常见的情况。一些我们如何忘记它。我们通过以下方式使用 JAXB 映射
@XmlRootElement(name="MyRoot")
@XmlAccessorType(XmlAccessType.FIELD)
public class MyRoot {
@XmlElement(name="One")
private String one;
@XmlElement(name="Three")
private String three;
@XmlAnyElement
private List<Object> remaining = new ArrayList<Object>();
public MyRoot() {
}
}
我从另一个应用程序收到以下 xml。我真的不明白为什么 JAXB 会忽略 /MyRoot/Two/bla2/one 中的 CDATA。转换后我看到这样的输出<Two><bla><bla> <bla2><one> function matchwo(a,b) { if (a < b && a < 0) then { return 1;} else { return 0;}} </one></bla2> <Two>
(注意没有 CDATA)
这是 XML
<MyRoot>
<One></One>
<Two>
<bla></bla>
<bla2><one><![CDATA[ function matchwo(a,b) { if (a < b && a < 0) then { return 1;} else { return 0;}} ]]></one></bla2>
</Two>
<Three></Three>
<Four>some text</Four>
请帮助我理解这个问题。我是否缺少 CDATA 的任何内容?提前致谢。