3

有什么方法可以使用 java.xml编辑/删除YAMLfile 中的值。

我正在使用 struts2-jquery-grid 从 YAML 文件中填充数据。现在,如果我编辑字段,它应该保存在 YAML 文件中。我能够分别使用yaml.load() 和 yaml.dump()从 YAML 格式的文件中读取值并将值写入文件。但是,我不知道要编辑和删除特定字段。

我浏览了http://code.google.com/p/snakeyaml/wiki/Documentation#Dumping_YAML链接,在那里我读到我们可以使用模板处理器和其他选项,例如定义 java bean 属性的顺序、注释以简化.yaml _ 但所有这些对我来说都没有任何意义。

这是我在此处序列化称为假设的对象列表的代码。在gridModel.add(假设); ,我将类 Assumption(带有 fetters 和 setter 的 bean 类)的值存储到gridModel的列表中。

       gridModel.add(assumption);

       try {

        FileWriter pr=new FileWriter("D:/yaml.yaml");

        DumperOptions options = new DumperOptions();

         options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);

        Yaml yaml = new Yaml(options);
        String output=yaml.dump(gridModel);//,Tag.MAP, null);
        pr.write(output);
        System.out.print(pr.toString());
        System.out.println();

        pr.close();
        }catch(Exception e){
            e.printStackTrace();
        }

我在一个名为 yaml.yaml 的文件中得到的输出为:

  • !!com.example.Assumption column1: '1' column2: Balwant column3: SPJ column4: rerer column5: null
  • !!com.example.Assumption column1: '' column2: Vikas column3: RNC column4: erer column5: null
  • !!com.example.Assumption column1: '3' column2: '' column3: PNBE column4: erer column5: null
  • !!com.example.Assumption column1: '4' column2: Diwakar column3: BGP column4: rerer column5: null
  • !!com.example.Assumption column1: '5' column2: Ajay column3: Godda column4: '' column5: null

对于反序列化,代码为:

            InputStream input = new FileInputStream(new File("D:/yaml.yaml"));
    Yaml yaml = new Yaml();
    for (Object data : yaml.loadAll(input))
        System.out.println("Data:"+data);

控制台的输出是:

数据:[假设[column1=1,column2=Balwant,column3=SPJ,column4=rerer,column5=null],假设[column1=,column2=Vikas,column3=RNC,column4=erer,column5=null],假设[ column1=3, column2=, column3=PNBE, column4=erer, column5=null], 假设 [column1=4, column2=Diwakar, column3=BGP, column4=rerer, column5=null], 假设 [column1=5, column2 =Ajay, column3=Godda, column4=, column5=null]]

我是 yaml 和 struts2 的新手。所以,请回答一个干净的解决方案。纠正我,如果我在描述要求时错了。提前致谢...

4

1 回答 1

0

我认为编辑的唯一方法是覆盖现有的 yaml。我们需要从网格中获取值并将 ti 覆盖到现有的值。

于 2012-12-03T07:14:04.707 回答