회사_ C#, MSSQL, WPF
C# wpf .xml 파일 읽기(열기) 데이터 처리하기# wpf .xml 파일 열고 데이터 처리하기
lsme
2024. 9. 27. 09:00
XML이란?
XML(Extensible Markup Language)는 데이터 저장 및 전송을 위한 마크업 언어입니다.
XML은 주로 데이터 구조를 정의하고 정보를 계층적으로 표현하는 데 사용됩니다.
XML의 기본 구조
XML 문서는 다음과 같은 기본 구성 요소로 이루어져 있습니다:
- 선언:
- XML 문서의 시작 부분에 XML 선언이 포함됩니다. 예: <?xml version="1.0" encoding="UTF-8"?>
- 루트 요소:
- XML 문서는 단 하나의 루트 요소(root element)를 가져야 합니다. 모든 다른 요소는 이 루트 요소의 하위 요소가 됩니다.
- 요소(Elements):
- 요소는 XML 문서의 기본 단위로, 시작 태그와 종료 태그로 구성됩니다. 예: <element>Content</element>
- 속성(Attributes):
- 요소는 추가 정보를 제공하는 속성을 가질 수 있습니다. 속성은 시작 태그 내에 정의됩니다. 예: <element id="1">Content</element>
- 텍스트 콘텐츠:
- 요소는 데이터를 담고 있는 텍스트 콘텐츠를 포함할 수 있습니다. 요소는 텍스트, 다른 요소, 또는 두 가지를 모두 포함할 수 있습니다.
[예시코드]
<?xml version="1.0" encoding="UTF-8"?>
<Library>
<Book id="1">
<Title>Effective C#</Title>
<Author>Bill Wagner</Author>
<Year>2019</Year>
</Book>
<Book id="2">
<Title>Learning XML</Title>
<Author>Erik T. Ray</Author>
<Year>2003</Year>
</Book>
</Library>
- 루트 요소: <Library>
- 하위 요소: <Book>, <Title>, <Author>, <Year>
- 속성: <Book id="1">에서 id 속성
XML의 장점
- 가독성: XML은 텍스트 기반으로, 사람이 읽고 이해하기 쉽습니다.
- 확장성: 새로운 데이터 구조를 쉽게 추가할 수 있습니다.
- 표준화: 다양한 플랫폼과 언어에서 지원됩니다.
이 함수는 화면의 버튼을 클릭하면 작동하는 함수이다.
코드에 주석으로 아주 자세히 작성해였다.
private void btn_Add_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
try
{
// 파일 열기 대화상자를 생성
OpenFileDialog dlg = new OpenFileDialog();
// 사용자가 파일을 선택했는지 확인
if(dlg.ShowDialog() == DialogResult.OK)
{
// XML 문서를 로드하기 위한 XmlDocument 객체 생성
XmlDocument doc = new XmlDocument();
// 사용자가 선택한 XML 파일을 로드
doc.Load(dlg.FileName);
// XML 내의 모든 Message 노드를 가져오기
// XPath 쿼리를 사용하여 A아래의 B노드들을 선택
XmlNodeList messageNodes = doc.SelectNodes("/A/B");
foreach (XmlNode messageNode in messageNodes)
{
// <B> 노드의 id 속성 값
string messageId = messageNode.Attributes["id"].Value;
// <B> 하위의 <one>, <two>, <three> 값 추출
string ONE = messageNode.SelectSingleNode("one")?.InnerText.Trim();
string TWO = messageNode.SelectSingleNode("two")?.InnerText.Trim();
string THREE = messageNode.SelectSingleNode("three")?.InnerText.Trim();
// 데이터베이스에 메시지를 저장하는 메서드 호출
this.{db 불러오는 형식}.(messageId, ONE, TWO, THREE);
}
}
}
catch(Exception ex)
{
}
}
별도로 체크해야할 것
1. .XML의 구조
<?xml version="1.0"?> <!-- ================================================================ --> <!-- 정보 --> <!-- 정보~ --> <!-- ================================================================ --> <A> <B id="WHAT"> <one> information </one > <two> information </two > <three> information </three > </B> <B id="how"> <one> information </one > <two> information </two > <three> information </three > </B> </A> |
2. db 연결 부분
{} 안의 내용을 각자 개별적으로 알아서 수정해야한다.
(물론 {}도 나중에 삭제해야함!)