Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XStream读回xml(java)_Java_Xml_Xstream - Fatal编程技术网

XStream读回xml(java)

XStream读回xml(java),java,xml,xstream,Java,Xml,Xstream,我有一个格式如下的xml: <list> <book> <price>20</price> <author>sam</author> <features type="comic"> <pocket>yes</pocket> </features> <avaiable>yes</avaiable> &

我有一个格式如下的xml:

<list>
<book>
    <price>20</price>
    <author>sam</author>
    <features type="comic">
        <pocket>yes</pocket>
    </features>
    <avaiable>yes</avaiable>
</book>
<book>
    <price>50</price>
    <author>john</author>
    <features type="novel">
        <manga>no</manga>
    </features>
    <avaiable>yes</avaiable>
</book>
</list>
我需要的是首先读取特性类型,因为这个属性需要知道我需要在java中实例化哪个类。我一直尝试读取到这个节点,然后再次向上移动到book节点…但是当我尝试再次向下移动以获取其余的节点值时,这是不可能的…似乎一旦向下移动,就不可能再次读取节点


所以我的问题是:有没有一种方法可以先获取一个特定的节点,然后再返回读取其他节点?

您真的需要使用XStream来实现这一点吗?这可能不是解决这个问题的最佳选择。是的,这是我们使用的库。在知道使用它真的很容易之前…但是我知道我遇到了这个问题,我建议首先将XML分解成Java对象,用一个特性成员映射XML结构,然后用不同的类创建专门的Java对象。嗯,听起来是一个选项,但我会创建两个对象…我正在做的是最后要做的是使用xpath获取特性节点来实例化该类,然后执行Normal解组。我不喜欢使用不同的库来实现这一点,但这是我的简单方法