我想使用xstream将xml文件转换为Arraylist。当我做的时候,我有如下错误:
com.thoughtworks.xstream.converters.ConversionException: pattern : pattern
---- Debugging information ----
message : pattern
cause-exception : com.thoughtworks.xstream.mapper.CannotResolveClassException
cause-message : pattern
class : java.util.ArrayList
required-type : java.util.ArrayList
converter-type : com.thoughtworks.xstream.converters.collections.CollectionConverter
path : /datas/data/pattern
line number : 5
class[1] : com.socket.server.ServerData$Datas
converter-type[1] : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
version : 1.4.7
-------------------------------
这是我的代码
try{
XStream xstream = new XStream(new StaxDriver());
Datas datas = new Datas();
File xmlx = new File("E:\\FileConfig.xml");
xstream.alias("datas", Datas.class);
xstream.alias("data", DataRegex.class);
xstream.aliasField("pattern", DataRegex.class, "pattern");
xstream.aliasField("destination", DataRegex.class, "destination");
// xstream.addImplicitCollection(DataRegex.class, "data",Data.class);
@SuppressWarnings("unchecked")
List<DataRegex> dataz = (List<DataRegex>) xstream.fromXML(xmlx);
System.out.println(dataz);
}catch(Exception e){
e.printStackTrace();
}
检查List<DataRegex> dataz = (List<DataRegex>) xstream.fromXML(xmlx);
时的错误,任何人都可以帮忙。我做的事?这是我的xml文件
<?xml version="1.0" encoding="UTF-8"?>
<data>
<patter>^[sS].*</pattern>
<destination>C:\\Server\\s\\</destination>
</data>
<data>
<pattern>^[dD].*</pattern>
<destination>C:\\Server\\d\\</destination>
</data>
任何有效XML的根元素都必须是单个元素,并且不能是列表。根据您的评论,Datas
是根元素:
Datas dataz = (Datas) xstream.fromXML(xmlx);