java中使用xstream的xml解析器
我正在尝试使用xstream解析XML。以下是XML文件的外观:java中使用xstream的xml解析器,java,xml,parsing,xstream,Java,Xml,Parsing,Xstream,我正在尝试使用xstream解析XML。以下是XML文件的外观: <Book> <type name="story" value="true" /> <type name="history" value="true" /> </Book> 解析此xml的代码如下所示: public class Parsing_Xml { public static void main(String[] args) throws FileNotFo
<Book>
<type name="story" value="true" />
<type name="history" value="true" />
</Book>
解析此xml的代码如下所示:
public class Parsing_Xml {
public static void main(String[] args) throws FileNotFoundException {
FileReader fileReader = new FileReader("book.xml"); // load our xml file
XStream xStream = new XStream();
xStream.processAnnotations(Book.class);
Book bookObject = (Book) xStream.fromXML(fileReader);
System.out.println(bookObject.type);
}
@XStreamAlias("Book")
class Book {
@XStreamImplicit
List<String> type = new ArrayList<String>();
}
}
公共类解析\u Xml{
公共静态void main(字符串[]args)引发FileNotFoundException{
FileReader FileReader=newfilereader(“book.xml”);//加载我们的xml文件
XStream XStream=新的XStream();
processAnnotations(Book.class);
BookBookObject=(Book)xStream.fromXML(fileReader);
System.out.println(bookObject.type);
}
@XStreamAlias(“书”)
课堂用书{
@XStreamImplicit
列表类型=新建ArrayList();
}
}
这是我得到的结果:
[,]
为什么这不能用XML中存在的所有类型填充数组?类型不是一个简单的字符串,而是一个带有两个属性的标记(
name
和value
)。如果你有foobar
,你会看到[“foo”,“bar”]
。您能验证这一点吗?在一个简单的测试中将实例转换为xml,而不是尝试构造可以反序列化的xml。您将了解库是如何以这种方式工作的,以及它对给定实例的期望值。type
不是一个简单的字符串,而是一个具有两个属性(name
和value
)的标记。如果你有foobar
,你会看到[“foo”,“bar”]
。您能验证这一点吗?在一个简单的测试中将实例转换为xml,而不是尝试构造可以反序列化的xml。您将了解库是如何以这种方式工作的,以及它对给定实例的期望。