gpt4 book ai didi

java - 在 XStream 中使用 MapConverter

转载 作者:行者123 更新时间:2023-11-30 03:48:13 26 4
gpt4 key购买 nike

我正在尝试将 XML 代码转换为 Java 映射。 XML(在不同的文件中)看起来像这样,并将单词与数字匹配(概率分布):

<?xml version="1.0" encoding="UTF-8" ?>
<root>
<Durapipe type="int">1</Durapipe>
<EXPLAIN type="int">2</EXPLAIN>
<woods type="int">2</woods>
<hanging type="int">3</hanging>
<hastily type="int">2</hastily>
<localized type="int">1</localized>
<Schuster type="int">5</Schuster>
<regularize type="int">1</regularize>
<LASR type="int">1</LASR>
<LAST type="int">22</LAST>
<Gelch type="int">2</Gelch>
<Gelco type="int">26</Gelco>
.......
</root>

我当前使用的 Java 代码如下所示:

    XStream xstream = new XStream();        
Map<String, Integer> englishCorpusProbDist;
englishCorpusProbDist = (Map<String, Integer>)xstream.fromXML(new File("locationonmycomputer/frequencies.xml"));

我遇到了一个异常(exception):

Exception in thread "main" com.thoughtworks.xstream.mapper.CannotResolveClassException: root
at com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:79)

建议我使用以下内容注册我的转换器:

xstream.registerConverter(new MapEntryConverter());

问题是 MapEntryConverter 似乎不是 XStream 中的类,我对这个人的建议感到困惑。

这是我之前问过的问题以及该人的回答: Converting XML into Java Map<String, Integer>

任何帮助将不胜感激。预先感谢您!

最佳答案

您实际上需要实现自己的*MapConverter,它扩展了Converter;没有名为 MapConverter 的实际类,这也是我有一段时间感到困惑的地方。

看看我已经实现并在 Github 上实现的一个。我希望这会让事情变得更容易理解。您基本上必须告诉 XStream 在编码和解码与相应标记相关的数据时要做什么。

关于java - 在 XStream 中使用 MapConverter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25096667/

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