반응형
SMALL
데이터포맷 - XML
XML
XML(Extensible Markup Language)은 마크업 형태를 쓰는 데이터 교환 형식
마크업 형태
마크업(markup)는 태그 등을 이용하여 문서나 데이터의 구조를 나타내는 방법 (속성부여도 가능)
구성
1. 프롤로그 : 버전, 인코딩
2. 루트요소(단 하나만)
3. 하위 요소들
<?xml version="1.0" encoding="UTF-8"?> <OSTList>
<OST like="1">
<name>마녀 배달부 키키</name> <song>따스함에 둘러쌓인다면</song>
</OST>
<OST like="2">
<name>하울의 움직이는 성</name> <song>세계의 약속</song> </OST>
</OSTList>
HTML 과 XML 비교
1. HTML의 용도는 데이터를 표시 / XML은 데이터를 저장 및 전송
2. HTML에는 미리 정의된 태그가 있지만 사용자는 XML에서 고유한 태그를 만들고 정의 가능
3. XML은 대/소문자를 구분하지만 HTML은 구분하지 않음. <book> 대신 <Book>으로 태그를 작성하면 XML 구문 분석기에서 오류가 발생
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<p></p>
<div></div>
</body>
</html>
XML
<?xml version="1.0" encoding="UTF-8"?> <OSTList>
<OST>
<name>마녀 배달부 키키</name> <song>따스함에 둘러쌓인다면</song> </OST>
<OST>
<name>하울의 움직이는 성</name> <song>세계의 약속</song>
</OST>
</OSTList>
JSON 과 XML 비교
JSON과 비교했을 때 닫힌 태그가 계속해서 들어가기 때문에 JSON과 비교하면 무거움(XML이 많은 용량 차이)
또한 Javascript Object로 변환하기 위해서 JSON보다는 더 많은 노력이 필요(JSON은 JSON.parse()면 됨)
JSON
{
"지브리OST리스트": [
{
"name": "마녀 배달부 키키",
"song": "따스함에 둘러쌓인다면"
},
{
"song": "세계의 약속"
}
]
}
XML
<?xml version="1.0" encoding="UTF-8"?> <OSTList>
<OST>
<name>마녀 배달부 키키</name> <song>따스함에 둘러쌓인다면</song> </OST>
<OST>
<name>하울의 움직이는 성</name> <song>세계의 약속</song>
</OST>
</OSTList>
a.js
const fs = require('fs')
const path = require('path')
var parser = require('xml2json');
let a = fs.readFileSync(path.join(__dirname,"a.xml"));
a = parser.toJson(a);
console.log(a); //{"OSTList":{"OST":[{"name":"마녀 배달부 키키","song":"따스함에 둘러쌓인다면"},{"name":"하울의 움직이는 성","song":"세계의 약속"}]}}
XML의 활용
- xml은 대표적으로 sitemap.xml에 쓰임
- 여러 언어에서도 독립적으로 쓰임
- itemap.xml은 서비스 내의 모든 페이지들을 리스트업한 데이터
- 사이트가 매우 크거나 서로 링크가 종속적으로 연결되지 않은 경우 크롤러가 일부 페이지를 누락하는 일이 있는데 이를 sitemap.xml이 방지하고 모든 페이지들을 크롤링할 수 있도록 해줌
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.example.com/foo.html</loc>
<lastmod>2018-06-04</lastmod>
</url> <url>
<loc>http://www.example.com/abc.html</loc>
<lastmod>2018-06-04</lastmod>
</url>
</urlset>
* 참고
반응형
LIST
'CS > 개발자필수지식' 카테고리의 다른 글
[CS] CI/CD(Continuous Integration/Delivery & Deployment) (0) | 2023.08.24 |
---|---|
[CS] 클라우드 - 컨테이너와 도커 (0) | 2023.08.23 |
[CS] 클라우드 - 가상머신 (0) | 2023.08.20 |
[CS] API 개념 (0) | 2023.08.18 |
[CS] 데이터교환형식 - JSON, 직렬화와 역직렬화 (0) | 2023.08.15 |
댓글