IMFXMLMaker.java
5.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
package com.airport.util.parse;
import org.apache.log4j.Logger;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
public class IMFXMLMaker {
private static final Logger logger = Logger.getLogger(IMFXMLMaker.class);
private Document XmlDocument;
private Element RootElement;
private Element SndrElement;
private Element RcvrElement;
private Element SEQNElement;
private Element TYPEElement;
private Element STYPElement;
private Element originalELEMENT;
private String XmlStr;
private String SNDR;
private String RCVR;
private String SEQN;
private String TYPE;
private String STYP;
private String IMFContent;
private String IMFXml;
public String getXmlStr() {
return XmlStr;
}
public void setXmlStr(String xmlStr) {
XmlStr = xmlStr;
}
public String getSNDR() {
return SNDR;
}
public void setSNDR(String SNDR) {
this.SNDR = SNDR;
}
public String getRCVR() {
return RCVR;
}
public void setRCVR(String RCVR) {
this.RCVR = RCVR;
}
public String getSEQN() {
return SEQN;
}
public void setSEQN(String SEQN) {
this.SEQN = SEQN;
}
public String getTYPE() {
return TYPE;
}
public void setTYPE(String TYPE) {
this.TYPE = TYPE;
}
public String getSTYP() {
return STYP;
}
public void setSTYP(String STYP) {
this.STYP = STYP;
}
public String getIMFContent() {
return IMFContent;
}
public void setIMFContent(String IMFContent) {
this.IMFContent = IMFContent;
}
public String getIMFXml() {
return IMFXml;
}
public void setIMFXml(String IMFXml) {
this.IMFXml = IMFXml;
}
//初始化报文头部节点
public IMFXMLMaker(String sndr,String seqn,String type,String styp){
this.SNDR = sndr;
this.SEQN = seqn;
this.TYPE = type;
this.STYP = styp;
this.XmlDocument = new Document();
//跟节点
this.RootElement = new Element("MSG");
this.XmlDocument.addContent(this.RootElement);
//meta节点
Element MetaElement = new Element("META");
this.RootElement.addContent(0,MetaElement);
//原始内容节点,储存最原始报文内容的节点
this.originalELEMENT = new Element("original");
this.RootElement.addContent(1,this.originalELEMENT);
//meta下的子节点们
SndrElement = new Element("SNDR");
RcvrElement = new Element("RCVR");
SEQNElement = new Element("SEQN");
Element DDTMElement = new Element("DDTM");
TYPEElement = new Element("TYPE");
STYPElement = new Element("STYP");
MetaElement.addContent(0,SndrElement);
MetaElement.addContent(1,RcvrElement);
MetaElement.addContent(2,SEQNElement);
MetaElement.addContent(3,DDTMElement);
MetaElement.addContent(4,TYPEElement);
MetaElement.addContent(5,STYPElement);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String dateString = simpleDateFormat.format(new Date());
DDTMElement.setText(dateString);
SndrElement.setText(this.SNDR);
SEQNElement.setText(this.SEQN);
TYPEElement.setText(this.TYPE);
STYPElement.setText(this.STYP);
}
public String finalXmlStr(){
try{
Document contentDocument = string2Doc(this.IMFContent);
this.originalELEMENT.addContent(0,contentDocument.detachRootElement());
String backXml = doc2String(this.XmlDocument);
return backXml;
}catch (Exception e){
e.printStackTrace();
return this.SEQN+"error";
}
}
/**
* 字符串转换为DOCUMENT
*
* @param xmlStr 字符串
* @return doc JDOM的Document
* @throws Exception
*/
public static Document string2Doc(String xmlStr) throws Exception {
java.io.Reader in = new StringReader(xmlStr);
Document doc = (new SAXBuilder()).build(in);
return doc;
}
/**
* Document转换为字符串
*
* @param doc DOCUMENT对象
* @return xmlStr 字符串
* @throws Exception
*/
public String doc2String(Document doc) throws Exception {
Format format = Format.getPrettyFormat();
format.setEncoding("UTF-8");// 设置xml文件的字符为UTF-8,解决中文问题
XMLOutputter xmlout = new XMLOutputter(format);
ByteArrayOutputStream bo = new ByteArrayOutputStream();
xmlout.output(doc, bo);
return bo.toString();
}
/**
* XML转换为Document
*
* @param xmlFilePath XML文件路径
* @return doc Document对象
* @throws Exception
*/
public static Document xml2Doc(String xmlFilePath) throws Exception {
File file = new File(xmlFilePath);
return (new SAXBuilder()).build(file);
}
public void main(String[] args) throws Exception{
finalXmlStr();
}
}