C\#프로그램 에서 LINQ to XML 을 사용 하여 XML 형식의 데 이 터 를 조회 하 는 실례
LINQ to XML 은 LINQ 의 메모리 XML 프로 그래 밍 인 터 페 이 스 를 사용 하여.NET Framework 프로 그래 밍 언어 에서 XML 을 처리 할 수 있 습 니 다.
XML 문 서 를 메모리 에 저장 합 니 다.이 점 은 문서 개체 모델(DOM)과 같 습 니 다.XML 문 서 를 조회 하고 수정 할 수 있 습 니 다.수정 한 후에 파일 로 저장 할 수도 있 고 직렬 화 된 후에 네트워크 를 통 해 보 낼 수도 있 습 니 다.그러나 LINQ to XML 은 DOM 과 달리 새로운 대상 모델 을 제공 합 니 다.이것 은 더욱 가 벼 운 모델 로 사용 하기에 도 편리 합 니 다.이런 모델 은 VisualC\#2008 언어 개선 을 이용 합 니 다.
LINQ to XML 의 가장 중요 한 장점 은 Language-Intergrated Query(LINQ)와 의 통합 이다.이 통합 이 이 루어 졌 기 때문에 메모리 XML 문 서 를 검색 요소 와 속성의 집합 으로 검색 할 수 있 습 니 다.LINQ to XML 의 조회 기능 은 기능 적 으로(문법 적 으로 는 아니 지만)XPath 와 XQuery 와 비교 할 수 있다.Visual C\#2008 통합 LINQ 후 더 강 한 유형 화 기능,컴 파일 시 검사 및 개선 디 버 거 지원 을 제공 합 니 다.
검색 결 과 를 XLement 과 XAttribute 대상 구조 함수 의 매개 변수 로 사용 함으로써 강력 한 기능 을 가 진 XML 트 리 를 만 드 는 방법 을 실현 했다.이런 방법 을'함수 구조'라 고 하 는데 이런 방법 을 이용 하여 개발 자 들 은 XML 트 리 를 한 가지 모양 에서 다른 모양 으로 편리 하 게 전환 할 수 있다.
LINQ to XML 은 개 선 된 XML 프로 그래 밍 인 터 페 이 스 를 제공 합 니 다.이 점 은 LINQ to XML 의 LINQ 기능 과 마찬가지 로 중요 할 수 있 습 니 다.LINQ to XML 을 통 해 XML 프로 그래 밍 을 할 때 다음 과 같은 모든 예상 동작 을 수행 할 수 있 습 니 다.
실례
얼마 전에 개 발 된 간호사 역 프로젝트 에서 저 는 for 순환 XML Reader 방식 으로 XML 파일 을 옮 겨 다 녔 습 니 다.관련 수 요 를 완성 할 수 있 고 함수 가 봉 인 된 후에 직접 호출 할 수 있 으 며 편리 합 니 다.
다음은 링크 투 XML 로 보 여 드 리 겠 습 니 다.구체 적 으로 더 자세 한 건 MSND 를 찾 아 보 세 요.
클 라 이언 트 의 XML 파일 은 다음 과 같 습 니 다.편 의 를 위해 세 가지 만 찾 았 습 니 다.
<?xml version="1.0"?>
<ROWSET>
<ROW>
< >1</ >
< >2012-06-11</ >
< ID>00002468</ ID>
< > </ >
< > </ >
< >42</ >
< >2981</ >
</ROW>
<ROW>
< >2</ >
< >2012-06-11</ >
< ID>00002467</ ID>
< > </ >
< > </ >
< >33</ >
< >2981</ >
</ROW>
<ROW>
< >3</ >
< >2012-06-11</ >
< ID>412905</ ID>
< >aaa</ >
< > </ >
< >24</ >
< >2981</ >
</ROW>
</ROWSET>
어떻게 보 여 드릴 까요?Form1 에 주목Load 방법 은 다음 과 같 습 니 다.
using System;
using System.Linq;
using System.Windows.Forms;
using System.Xml.Linq;
namespace Lint2XMLDatabinding
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
string xmlFilePath = @"./ .xml";
XDocument doc = XDocument.Load(xmlFilePath);
var query = from p in doc.Descendants("ROW")//doc.Descendants("ROW")
where p.Element(" ").Value!="1"
select new { A = p.Element(" ").Value, B = p.Element(" ID").Value, C = p.Element(" ").Value ,D=p.Element(" ").Value };
dataGridView1.DataSource= query.ToList();
}
}
}
프로그램 결 과 는 다음 과 같 습 니 다.이 박문 은 예시 로 쓰 이 는 데 모 는 단순 한 LINQ 를 사용 하기 위 한 것 으로 간단 하 다.XML 파일 을 조작 하 는 방법 은 여러 가지 가 있 습 니 다.LINQ 를 사용 하지 않 아 도 물론 문제 가 없습니다.
사실 지금까지.NET Framework 는 XML 데 이 터 를 처리 하 는 두 개의 라 이브 러 리 를 제공 했다.
1.DebugLZQ 앞의 프로젝트 에서 사용 하 는 DOM 표준 에 부합 되 는 라 이브 러 리:보물 창고 XmlDocument,XmlElement,XmlNode,XmlAttribute 등 클래스 입 니 다.이 라 이브 러 리 의 특징 은 중간 규칙 과 기능 이 강하 지만 XML 의 전통 과 복잡 함 을 너무 많이 짊 어 진 것 이다.
2.LINQ 를 바탕 으로 하 는 라 이브 러 리:XDocument,XElement,XNode,XAttribute 등 을 포함한다.이 라 이브 러 리 는 LINQ 를 이용 하여 조회 와 조작 을 할 수 있어 편리 하고 빠르다 는 것 이 특징 이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.