Позвольте мне начать с того, что это первый раз, когда я пытаюсь использовать xStream. Я пытаюсь проанализировать XML-файл и использовать данные для создания java-объекта. Я добавил xstream-1.4.4.jar, xpp3_min-1.1.4c.jar, xmlpull-1.1.3.1.jar и kxml2-2.3.0.jar в мои пути сборки. Я пытался следовать несколько учебников, но просто не могу понять, почему я получаю эту ошибку:xstream parser error: java.lang.ArrayIndexOutOfBoundsException: -1
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
at com.thoughtworks.xstream.core.util.FastStack.pop(FastStack.java:42)
at com.thoughtworks.xstream.io.xml.AbstractPullReader.move(AbstractPullReader.java:125)
at com.thoughtworks.xstream.io.xml.AbstractPullReader.moveDown(AbstractPullReader.java:103)
at com.thoughtworks.xstream.io.xml.XppReader.<init>(XppReader.java:63)
at com.thoughtworks.xstream.io.xml.AbstractXppDriver.createReader(AbstractXppDriver.java:54)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:913)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:904)
at ParseTesting.Testing.main(Testing.java:10)
файл XML выглядит следующим образом:
<?xml version="1.0" encoding="ISO-8859-1"?>
<vblock>
<name>vBlock1</name>
<status>online</status>
<storage>2.2</storage>
<cpu>2.5</cpu>
</vblock>
Теперь здесь соответствующий класс для объекта Я хотел бы создать:
package ParseTesting;
public class Vblock {
private String name;
private String status;
private double storage;
private double cpu;
/*public Vblock(String n, String stat, double stor, double proc){
name = n;
status = stat;
storage = stor;
cpu = proc;
}*/
public String getName(){
return this.name;
}
public String getStatus(){
return this.status;
}
public double getStorage(){
return this.storage;
}
public double getCpu(){
return this.cpu;
}
}
И, наконец, на самом деле разбора, что я пытаюсь:
package ParseTesting;
import com.thoughtworks.xstream.XStream;
public class Testing {
public static XStream xstream = new XStream();
public static void main(String[] args){
xstream.alias("vblock", Vblock.class);
Vblock v1 = (Vblock)xstream.fromXML("vBlock.xml");
System.out.println(v1.getName());
}
}
Я был бы признателен за понимание, которое может быть предоставлено. Большое спасибо!
Я не уверен, что вы имеете в виду здесь. Я вижу, что эти методы существуют, но я не знаю, как передать файл, Url или Inputstream. Как создать файл-объект? – unsingefou