잠시만 기다려 주세요

     '총선이 다가오니.. 민주당 수박들.. 슬슬 또 옳은 소리 하지.... 이때만 이새끼들아.!! 결정적일 때 당원들 등에 칼을 꽂는다. -.-; 지나면 입턴 거 다 무효화 된다.. 주의해야 한다. 이새끼들은 사악하다... 절대 다시 뽑아주면 안된다.'
전체검색 :  
이번주 로또 및 연금번호 발생!!   |  HOME   |  여기는?   |  바다물때표   |  알림 (19)  |  여러가지 팁 (1095)  |  추천 및 재미 (163)  |  자료실 (28)  |  
시사, 이슈, 칼럼, 평론, 비평 (799)  |  끄적거림 (142)  |  문예 창작 (719)  |  바람 따라 (75)  |  시나리오 (760)  |  드라마 대본 (248)  |  
살인!


    golang

golang - xml 사용하기
이 름 : 바다아이   |   조회수 : 10108         짧은 주소 : https://www.bada-ie.com/su/?971591853979

1. XML 인코딩

Go 데이타를 XML 포맷으로 변환(인코딩)하기 위해서는 encoding/xml 패키지의 Marshal() 함수를 사용한다. 아래 예제는 Go 구조체를 XML로 인코딩하는 코드인데, 해당 Go 데이타 값을 xml.Marshal()의 파라미터로 전달하면, Marshal() 함수는 XML으로 인코딩된 바이트배열과 에러객체를 리턴한다. 만약 인코딩된 바이트배열을 다시 문자열로 변경할 필요가 있다면, string(바이트배열)과 같이 변경할 수 있다.
 

package main
 
import (
    "encoding/xml"
    "fmt"
)
 
//Member -
type Member struct {
    Name   string
    Age    int
    Active bool
}
 
func main() {
    mem := Member{"Alex", 10, true}
 
    xmlBytes, err := xml.Marshal(mem)
    if err != nil {
        panic(err)
    }
 
    xmlString := string(xmlBytes)
    fmt.Println(xmlString)
}
 

2. XML 디코딩

XML으로 인코딩된 데이타를 다시 Go 타입으로 디코딩하기 위해서는 encoding/xml 패키지의 Unmarshal() 함수를 사용한다. Unmarshal() 함수의 첫번째 파라미터에는 XML 데이타를, 두번째 파라미터에는 출력할 구조체 포인터를 지정한다. 리턴값은 에러객체이고, 에러가 없을 경우, 두번째 파라미터에 원래 데이타가 복원된다.
 

func main() {
    // 테스트용 데이타
    xmlBytes, _ := xml.Marshal(Member{"Tim", 1, true})
 
    // XML 디코딩
    var mem Member
    err := xml.Unmarshal(xmlBytes, &mem)
    if err != nil {
        panic(err)
    }
     
    // mem 구조체 필드 엑세스
    fmt.Println(mem.Name, mem.Age, mem.Active)
}
 

3. XML 파일 읽기

흔히 XML으로 저장된 파일을 읽어 Go 타입으로 디코딩 (혹은 Deserialization)하여 사용하는 경우가 많은데, 아래 예제는 이를 예시한 것이다. 즉, 아래와 같은 XML 텍스트 파일을 읽어 들여, 이를 Members 구조체로 디코딩한 예제이다.
 

<Members>
	<Member>
		<Name>Alex</Name>
		<Age>10</Age>
		<Active>true</Active>
	</Member>	
	<Member>
		<Name>Tim</Name>
		<Age>12</Age>
		<Active>false</Active>
	</Member>
</Members>


package main
 
import (
    "encoding/xml"
    "fmt"
    "io/ioutil"
    "os"
)
 
//Member -
type Member struct {
    Name   string
    Age    int
    Active bool
}
 
//Members -
type Members struct {
    Member []Member
}
 
func main() {
    // xml 파일 오픈
    fp, err := os.Open("c:/temp/test.xml")
    if err != nil {
        panic(err)
    }
    defer fp.Close()
 
    // xml 파일 읽기
    data, err := ioutil.ReadAll(fp)
 
    // xml 디코딩
    var members Members
    xmlerr := xml.Unmarshal(data, &members)
    if xmlerr != nil {
        panic(xmlerr)
    }
 
    fmt.Println(members)
}


출처 :
http://golang.site/go/article/105-XML-%EC%82%AC%EC%9A%A9

 
| |





      1 page / 6 page
번 호 카테고리 제 목 이름 조회수
180 golang golang ... 바다아이 142
179 golang golang , ... 바다아이 2727
178 golang golang , map . 바다아이 2112
177 golang Golang (, , data ) , ... 바다아이 2439
176 golang golang sort ... 바다아이 2810
175 golang golang html.EscapeString html.UnescapeString input value ... 바다아이 2734
174 golang golang go.mod go.sum . GOPATH SRC not module, 1.16 . 바다아이 6262
173 golang go 1.16 ... is not in GOROOT.. GOPATH .... . 바다아이 7416
172 golang , String Formatting 바다아이 8718
171 golang rand.Intn , random, , . 바다아이 8260
170 golang golang ... 바다아이 12007
169 golang golang gopath, goroot .. golang 바다아이 8977
168 golang golang ... Force download file example 바다아이 11007
167 golang golang , , cpu, memory, disk 바다아이 12072
166 golang golang , ... GOOS, GOARCH 바다아이 9719
165 golang golang checkbox ... 바다아이 9596
164 golang golang , , http .... 바다아이 9412
163 golang golang nil , nil , nil ... 바다아이 9491
162 golang 2 golang, go , .... golang .... 바다아이 12737
161 golang golang postgresql, mysql, mariadb ... ` Grave () .. .. 바다아이 10051
160 golang golang postgresql mysql, mariadb scan , null .. 바다아이 10123
159 golang golang , iconv 바다아이 12938
158 golang golang quote escape, unquote 바다아이 10355
157 golang golang , http errorLog , , ... 바다아이 10744
156 golang golang interface , 바다아이 9811
155 golang golang struct .... 바다아이 10533
154 golang golang map map , 바다아이 10013
153 golang golang map .... .... 바다아이 9344
152 golang golang slice copy 바다아이 9534
151 golang golang goto 바다아이 10718
| |









Copyright ⓒ 2001.12. bada-ie.com. All rights reserved.
이 사이트는 리눅스에서 firefox 기준으로 작성되었습니다. 기타 브라우저에서는 다르게 보일 수 있습니다.
[ Ubuntu + GoLang + PostgreSQL + Mariadb ]
서버위치 : 오라클 클라우드 춘천  실행시간 : 0.28014
to webmaster... gogo sea. gogo sea.