java讀取XML檔案內容的方法
xml檔案內容:
<?xml version="1.0" encoding="UTF-8"?>
<DigitalEnvelope>
<Channel id="BANK" privatekey="A1JTQe4Q94krAfR1POTxYec1Kz4S7qTc4V5ToxC2ENaKczp8nNxGWul0V0cOiltBDVNOpV8ET8qhzSvStNd6ICJKwMKiVM/XnE1Gk6Jkyd7xlkAzbANCeYH7PRz/n4NCaW6ZcHXPwyGEJyzLbrF/pm9Rh50P5R7QmlgiPW/yE3PamKBRndyH42vBOg4ZdjAyHZz94JpNo9HEgz5Xp+SnaNns1rcL3QkDHV1CudazOldywpsi7+9mxyUZLMUOBcsIBrDuonGXLtQZiUhXlMQGp0qz67mcb7alas1TDL7a3c5XgHwI9jkGkHXrv8MCPxyJ/zjljqrIlVrB7gdJ0+5BheCIQTmQjP+UMxR/DfKl3bQKQ7Ihi7YCIWjwhfapVcFWfh4u5h3a3nXHrBfL7vSyaYizg/JbKvT9A5VbkdvDgYz6J7uqoR1SHjZnJLSsTAheqW63owvZ6Tb0IUtzm1Pd7zrQ5slFTuVB/46XXgCITdqOgCeepkRj2brhRZ1h8xrgc1MIVzh/GKhLCJ3m9T2W5eau4txbKWmw3yCaCmNeZaMrNrBPeXMsLA5uoRrusLUBh9Zmm2Z7QQrfq4VxU6Xz317xyl6fadA5jEz8HSJSOGiL3RALBM+I9HQYKlDVV+Y5xVL/4Cs1TsVKoiUW0Niu6ZpSgdL7PufMb8YFtH+qksxygK5ZQoCCo3bXJVRzQtsaZCOxW+d6vU2qmdMJx/OQjBaA6Q6qWcYfMGD1dCVg/VQOouRorz63ZUD6Ui+/U+M/apC5LOvWAKn2pCzcWPSQJnsw5MWy4t1q5SYO+aLWpt6yEWV9Ke8YF5G7WNYyi3ypsptDQRCGNfFcwThK6QTorWpybL5hktXlhWIgfMJ+lgNXm0S5mSNh+LdLB/3j4EdxYOTJWpry4eQRKnhsM2ciOv/fZ5klnUopeq+eMV0poHQzimN8k2gdbpZO7GMCH8xucIMcWqYDqIZH4fSyPxbekIAgHupq0+/cRnUYx1MM6PlhevlY0CfLzaMP0N9LAAG9pJK42VRpJtOV5zhVpeMzr7zy2qWgSGRY3O2xGufPCRGB4HM44XkJl5kcDD6l4mSCFPysGbFy9kykmaQ1G3IFPmVvT0xESyeu55ZYHDktWH7FhHD4ly8zm2hFDZ97sUuKD0UichzYu3j/S+iELeQ62rnBvn0gyYwBEv8Fw6IspSBS5CdMV/U9KEnFoWN30ZOT7MCIdgAKJ+ydKppxIk45EfVFxM5f5tyaQLobOpz6yEr1xLhErky0Md3jvPFeSnqwlbdBwX4zHmiN/c3OFYWQn1uj4XtKX6XokAHEjILX0ZvK/HLhDDfCW83cPShYf33KEqNkp6OvRg+2T783l77pGcsGLmS2JInD3DA7ujdM+OnxkxUcpbfExm8wXLYhaXQsRht2ALD5wO4BiMxr/RqEHW1P5RY3J17tVmmk7S7dlwYolHqpZ8Gq1IJ7G2UKw98ffDyMS14SG33V+ZE1mzYHGMo4InT+5RpzUKYy2Sb9vyFtGWznfk5CVVSeN1ObSo6Q5zippULXD+yd+XbJdc8D56P4DY6BoOoqY0HUkjGdkgqQF2MO9z+KN3Cz7McuPCkM1A7oxl4cWRhHVIPJU8rzK/jvDNM8nTnjySUfEG8XoGJv1tuhdpaT0xG8="
pwd="12342231"></Channel>
</DigitalEnvelope>
實體類:
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name="DigitalEnvelope")
@XmlAccessorType(XmlAccessType.FIELD)
public class DigitalEnvelopeDefinition {
@XmlElement(name="Channel")
private List<ChannelDefinition> channels;
public List<ChannelDefinition> getChannels() {
return channels;
}
public void setChannels(List<ChannelDefinition> channels) {
this.channels = channels;
}
}
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name="Channel")
@XmlAccessorType(XmlAccessType.FIELD)
public class ChannelDefinition {
@XmlAttribute(name="id")
private String id;
@XmlAttribute(name="privatekey")
private String privatekey;
@XmlAttribute(name="pwd")
private String pwd;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPrivatekey() {
return privatekey;
}
public void setPrivatekey(String privatekey) {
this.privatekey = privatekey;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getPwd() {
return pwd;
}
}
測試類:
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;
public class readXML {
public static void main(String[] args) throws Exception {
URL url=DigitalEnvelopeDefinition.class.getClassLoader().getResource("DigitalEnvelopeCfg.xml");
if(url == null) {
throw new IOException("檔案--未找到");
}
URLConnection conn;
try {
conn = url.openConnection();
File file = new File(conn.getURL().toURI());
JAXBContext context = JAXBContext.newInstance(DigitalEnvelopeDefinition.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
DigitalEnvelopeDefinition unmarshal = (DigitalEnvelopeDefinition) unmarshaller.unmarshal(file);
for(int i=0; i<unmarshal.getChannels().size();i++){
System.out.println(unmarshal.getChannels().get(i).getId());
System.out.println(unmarshal.getChannels().get(i).getPrivatekey());
System.out.println(unmarshal.getChannels().get(i).getPwd());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}