「付加行」機能の実装中。
[nucalgen] / nucalgen / src / main / java / jp / satomichan / nucalgen / addition / AdditionUtil.java
1 package jp.satomichan.nucalgen.addition;
2
3 import java.io.File;
4 import java.io.FileInputStream;
5 import java.io.IOException;
6 import java.io.InputStream;
7
8 import javax.xml.parsers.ParserConfigurationException;
9 import javax.xml.parsers.SAXParserFactory;
10
11 import org.apache.commons.digester.Digester;
12 import org.xml.sax.SAXException;
13
14 public class AdditionUtil {
15
16         public static void main(String[] args) {
17                 AdditionConfig add = additionFileReader(new File("C:\\Users\\h520s\\Desktop\\pfc-balance.xml"));
18         }
19
20
21         public static AdditionConfig additionFileReader(File reportXmlFile){
22                 SAXParserFactory factory = SAXParserFactory.newInstance();
23                 javax.xml.parsers.SAXParser parser = null;
24                 AdditionConfig addition = null;
25
26                 try {
27                         parser = factory.newSAXParser();
28
29                         Digester digester = new Digester(parser);
30
31                         digester.addObjectCreate("addition", AdditionConfig.class);
32                         digester.addObjectCreate("addition/row", AcRow.class);
33
34                         digester.addSetNext("addition/row", "addRow");
35                         digester.addSetProperties("addition/row");
36
37                         digester.addObjectCreate("addition/row/cell", AcCell.class);
38
39                         digester.addSetNext("addition/row/cell", "addCell");
40                         digester.addBeanPropertySetter("addition/row/cell/type");
41                         digester.addBeanPropertySetter("addition/row/cell/value");
42                         digester.addBeanPropertySetter("addition/row/cell/alias");
43
44                         //パースする
45                         InputStream in;
46
47                         in = new FileInputStream(reportXmlFile);
48                         addition = (AdditionConfig)digester.parse(in);
49                         
50                         
51                         
52                 } catch (IOException | SAXException | ParserConfigurationException e) {
53                         throw new RuntimeException(e);
54                 }
55
56                 return addition;
57
58         }
59 }