XML DOM Parser์ DOM ๋ถ์์ ์ํ ๊ธฐ๋ณธ ๋์์ ๊ตฌํํ๋ ๋ฏธ์
ํ์ต ํค์๋
#XML
#ํ ํฐ
#์ ๊ทํํ์
#Stack
#DOM
#Tokenizer
#Parser
const str = "<!DOCTYPE html><HTML lang="ko"><BODY><P>BOOST<IMG SRC=\"codesquad.kr\"></IMG><BR/></P></BODY></HTML>";
const dom = XMLParser(str);
console.log(dom.stringfy());
{ element: 'HTML',
attributes: [
{ name : "lang", value : "ko" }
]
children: [
{ element : 'BODY',
children: [
{ element : 'P',
text : 'BOOST',
children: [
{ element : 'IMG',
attributes : [
{ name : 'SRC', value : 'codesquad.kr'}
]
},
{ element: 'BR' }
]
}
]
}
]
}
const str = "<!DOCTYPE html><HTML lang="ko"><BODY></HTML></BODY>";
const dom = XMLParser(str);
console.log(dom.stringify());
//ERROR: "์ฌ๋ฐ๋ฅธ XML ํ์์ด ์๋๋๋ค."
- XML
๊ณต๋ถ ์๊ฐ: 3H
- 23.01.05 - ์ปดํ์ผ๋ฌ ์ด๋ก : tokenizer, lexer, parser ์ค์ฌ (๋ธ๋ก๊ทธ ์์ฑ ์์ )
์ด๋ฒ ๋ฏธ์
๋ด์ฉ์ ์ฝ์ด ๋ณด๊ณ ์ฉ์ด๋ฅผ ํ๋๋ ๋ชจ๋ฅด๊ณ ๋ญ ๊ตฌํํด์ผ ํ๋์ง์กฐ์ฐจ ๋ชจ๋ฅด๊ฒ ์ด์ ์ฐ์ ๊ฐ๋
๊ณต๋ถ๋ฅผ ์์ํ๋ค.
์ฐ์ XML์ ๋ํด ์์๋ด์ผ๊ฒ ๋ค๊ณ ์๊ฐํ๊ณ , XML์ ๊ณต๋ถํ๊ณ ๋๋ ๋ค์์ผ๋ก ๊ณต๋ถํด์ผ ํ ๋ด์ฉ๊ณผ ๋ฏธ์
๋ด์ฉ์ด ๋์ ๋ค์ด์๋ค.
XML ์ ๊ดํด ๊ณต๋ถํ ๋ด์ฉ์ ๊ฐ์ธ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํด๋์๋ค.
๋ฏธ์ ์ ์ฐ์ ํ ํฌ๋์ด์ ํ๋๋ผ๋ ๊ตฌํํด๋ณผ ์์ ์ด๋ค.
- tokenizer ๊ธฐ๋ฅ
- lexer ๊ธฐ๋ฅ
- parser ๊ธฐ๋ฅ
- ํ๊ทธ ์ฒ๋ฆฌ๋ฅผ ์ํ Stack ๊ธฐ๋ฅ(๋ผ์ด๋ธ๋ฌ๋ฆฌ/๋ชจ๋ ์ฌ์ฉ ๋ถ๊ฐ)
- ํ๊ทธ ํ์ ์ค๋ฅ ์ ์ค๋ฅ ๋ฌธ๊ตฌ ์ถ๋ ฅ ๊ธฐ๋ฅ