반응형
XML 정의
XML(eXtensible Markup Language)은 W3C에서 개발된, 다른 특수한 목적을 갖는 마크업 언어를 만드는데 사용하도록 권장하는 다목적 마크업 언어입니다.
XML은 SGML의 단순화된 부분집합으로, 다른 많은 종류의 데이터를 기술하는 데 사용할 수 있습니다.
XML은 주로 다른 종류의 시스템, 특히 인터넷에 연결된 시스템끼리 데이터를 쉽게 주고 받을 수 있게 하여 HTML의 한계를 극복할 목적으로 만들어졌습니다.
웹 서비스에서 XML 데이터를 송수신 할 때 태그로 시작하여 태그로 끝나는 마크업 구조로 되어 있는 구조와, 애트리뷰트가 포함된 이름/값 짝으로 이루어진 마크업 구조로도 사용이 가능합니다.
XML 데이터가 DB에 저장되어 있는 경우, 데이터를 파싱해서 SELECT 해야 할 경우가 있습니다.
declare @xml xml =
'<email>
<account language="en" />
</email>'
XML 태그 중 account의 language attribute 값은 "en" 입니다.
이 값을 SELECT 하는 방법을 알아볼텐데요.
XMl 데이터를 필드로 SELECT 할 때, XML 데이터의 node로 데이터를 찾았었다면 attribute value는 @를 붙여서 value 값을 찾을 수 있습니다.
select @xml.value('(/email/account/@language)[1]', 'nvarchar(max)')
결과는 account의 attribute language의 값인 "en"이 출력됩니다.
반응형