C\#프로그램 에서 LINQ to XML 을 사용 하여 XML 형식의 데 이 터 를 조회 하 는 실례

4267 단어 C#LINQ
LINQ to 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 프로 그래 밍 을 할 때 다음 과 같은 모든 예상 동작 을 수행 할 수 있 습 니 다.
  • 파일 이나 스 트림 에서 XML 을 불 러 옵 니 다
  • XML 을 파일 이나 흐름 으로 정렬 합 니 다
  • 함수 구 조 를 사용 하여 처음부터 XML 을 만 듭 니 다
  • XPath 와 유사 한 축 으로 XML 을 조회 합 니 다
  • 메모리 XML 트 리 를 Add,Remove,ReplaceWith,SetValue 등 방법 으로 조작 합 니 다
  • XSD 를 사용 하여 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();
       
      }
     }
    }
    
    
    프로그램 결 과 는 다음 과 같 습 니 다.
    201637160525560.png (476×361)
    이 박문 은 예시 로 쓰 이 는 데 모 는 단순 한 LINQ 를 사용 하기 위 한 것 으로 간단 하 다.XML 파일 을 조작 하 는 방법 은 여러 가지 가 있 습 니 다.LINQ 를 사용 하지 않 아 도 물론 문제 가 없습니다.
    사실 지금까지.NET Framework 는 XML 데 이 터 를 처리 하 는 두 개의 라 이브 러 리 를 제공 했다.
    1.DebugLZQ 앞의 프로젝트 에서 사용 하 는 DOM 표준 에 부합 되 는 라 이브 러 리:보물 창고 XmlDocument,XmlElement,XmlNode,XmlAttribute 등 클래스 입 니 다.이 라 이브 러 리 의 특징 은 중간 규칙 과 기능 이 강하 지만 XML 의 전통 과 복잡 함 을 너무 많이 짊 어 진 것 이다.
    2.LINQ 를 바탕 으로 하 는 라 이브 러 리:XDocument,XElement,XNode,XAttribute 등 을 포함한다.이 라 이브 러 리 는 LINQ 를 이용 하여 조회 와 조작 을 할 수 있어 편리 하고 빠르다 는 것 이 특징 이다.

    좋은 웹페이지 즐겨찾기