(De)Serialize mixed content with jackson xml?((反)使用Jackson XML序列化混合内容?)
问题描述
通过我所做的所有搜索,我知道使用Jackson序列化/反序列化具有混合内容的XML是有问题的。有人知道使用Java处理以下XML的方法吗?
<xmlsample>
<title>Yada yada yada <a href="component:tcm:757-228001" id="Link_1492103133595" title="yada" name="Link_1492103133595" xmlns="xhtml">yada</a> yada</title>
<link>test</link>
</xmlsample>
我正在使用以下POJO:
@JacksonXmlRootElement(localName="xmlsample")
public class XmlSample{
private String title;
private String link;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getLink() {
return link;
}
public void setLink(String link) {
this.link = link;
}
}
如果节点包含混合内容,如上例所示,我将收到以下错误:
java.io.IOException: Expected END_ELEMENT, got event of type 1
如果节点为纯文本,则反序列化有效。
我尝试使用JsonNode、TextNode、ObjectNode、Object代替String作为数据类型。我尝试了自定义序列化程序和反序列化程序,但错误仍然存在。事实上,如果节点中有html,则处理不会到达自定义反序列化程序。
此XML来自我无法更改的第三方系统(SDL Tridion)。
如有任何帮助,我们将不胜感激!
编辑:我需要澄清节点可以包含标记,也可以包含纯文本,因此我不能创建表示您在上面的XML中看到的标记的POJO。中的标记也可能比上面的示例复杂得多。这就是为什么我只是想把它强迫成一串。我不需要操作它,我只需要将它保存在POJO中,这样它就可以原封不动地返回到数据库。
推荐答案
您可以尝试使用CDATA:
<![CDATA[<]]>
<![CDATA[>]]>
或其他解决办法,例如转义括号,因此&qot;<;";变成";<
";等等.
这篇关于(反)使用Jackson XML序列化混合内容?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:(反)使用Jackson XML序列化混合内容?
基础教程推荐
- 在螺旋中写一个字符串 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- 如何强制对超级方法进行多态调用? 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01