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
Java 将数据从XML加载到列表_Java_Xml_Jaxb - Fatal编程技术网

Java 将数据从XML加载到列表

Java 将数据从XML加载到列表,java,xml,jaxb,Java,Xml,Jaxb,我使用JAXB创建了一个XML文件,输出如下: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <person> <data> <id>1000</id> <age>10</age> <values> <value>646.2</value&

我使用JAXB创建了一个XML文件,输出如下:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<person>
    <data>
        <id>1000</id>
        <age>10</age>
        <values>
            <value>646.2</value>
            <value>637.44</value>
        </values>
        <dates>
            <date>2014-06-05</date>
            <date>2014-06-04</date>
        </dates>
    </data>
    <data>
        <id>1001</id>
        <age>10</age>
        <values>
            <value>546.4</value>
            <value>541.5</value>
        </values>
        <dates>
            <date>2014-06-05</date>
            <date>2014-06-04</date>
        </dates>
    </data>
    <data>
        <id>1002</id>
        <age>12</age>
        <values>
            <value>40.59</value>
            <value>40.21</value>
        </values>
        <dates>
            <date>2014-06-05</date>
            <date>2014-06-04</date>
        </dates>
    </data>
</person>
我的javafx控制器类的一部分:

public void initializePersonTable() {   
idCol.setCellValueFactory(new PropertyValueFactory<Person, String>("id"));
ageCol.setCellValueFactory(new PropertyValueFactory<Person, Integer>("age"));
}

加载保存的XML文件时,“id”和“age”将通过可观察列表添加到tableview中。加载文件后如何访问“值”和“日期”数据?我想使用这些数据来创建统计数据

如果我使用:

Person p = new Person();
System.out.println(p.getDates());

。。。我刚得到一个空列表返回

新手问题。。。我自己找到了一个解决办法:

private void Test{
    for (Person p : personTable.getItems()) {
        System.out.println(p.getDates());
        System.out.println(p.getValues());
    }

您应该发布更多的代码,这样我们就可以看到问题所在,尤其是创建person实例会很有帮助。就这么做了。如果你需要更多的细节,请告诉我。谢谢
public ObservableList<Person> getPersonData() {
    return this.pData;
}
   public void loadFile (File file) {
        JAXBContext jaxb = JAXBContext.newInstance(ListWrapper.class);
        Unmarshaller um = jaxb.createUnmarshaller();
        ListWrapper wr = (ListWrapper) um.unmarshal(file);
        pData.clear();
        pData.addAll(wr.getPerson());
    }
public void initializePersonTable() {   
idCol.setCellValueFactory(new PropertyValueFactory<Person, String>("id"));
ageCol.setCellValueFactory(new PropertyValueFactory<Person, Integer>("age"));
}
public void setMainApp(MainApp mainApp) {
    this.mainApp = mainApp;
    this.personTable.setItems(mainApp.getPersonData());
}
private void NewPersonButton(ActionEvent event) {
    Person p = new Person();
    p.setSymbol(personTF.getText()); // personTF = JavaFX Textfield
    p.setWeight(Integer.parseInt(ageTF.getText())); // ageTF = JavaFX Textfield
    mainApp.getPersonData().add(p);
}
Person p = new Person();
System.out.println(p.getDates());
private void Test{
    for (Person p : personTable.getItems()) {
        System.out.println(p.getDates());
        System.out.println(p.getValues());
    }