1. 程式人生 > >java讀取XML檔案內容的方法

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();
        }
    }
    
    
}