gpt4 book ai didi

java - 将子 XML 元素反序列化为 XML 字符串

转载 作者:行者123 更新时间:2023-12-02 10:51:10 24 4
gpt4 key购买 nike

使用 Jackson 或 JAXB,有没有办法将子 XML 元素的整个子树反序列化/编码为字符串?

例如,给定以下 XML:

<root>
<foo>
<bar>
<baz/>
</bar>
</foo>
</root>

有没有办法将其反序列化/编码到以下类

@XmlRootElement
public class Root {
private String foo;

// constructors, getters, setters, etc.
}

结果如下 Root(foo="<bar><baz/></bar>")

最佳答案

您可以为此编写自己的 jackson 反序列化器:

public class Test {
public static void main(String[] args) throws Exception {
ObjectMapper mapper = new XmlMapper();
final SimpleModule module = new SimpleModule("configModule", Version.unknownVersion());
module.addDeserializer(Root.class, new DeSerializer());
mapper.registerModule(module);
// Root readValue = mapper.readValue(<xml source>);
}
}

class DeSerializer extends StdDeserializer<Root> {

protected DeSerializer() {
super(Root.class);
}

@Override
public Root deserialize(JsonParser p, DeserializationContext ctxt) throws Exception {
// use p.getText() and p.nextToken to navigate through the xml and construct Root object
return new Root();

}
}

关于java - 将子 XML 元素反序列化为 XML 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52169960/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com