문제

XMLDocument 또는 문자열에서 Datagrid로 XML을 읽는 가장 좋은 방법은 무엇입니까?

XML은 특정 형식이어야합니까?

데이터 세트를 중개자로 사용해야합니까?

저는 동료 중 한 명이 개발중인 서버에서 보낸 XML을 소비하는 클라이언트를 작업하고 있습니다. XML의 형식을 Datagrid가 요구하는 것에 맞게 변경할 수 있습니다.

도움이 되었습니까?

해결책 4

데이터를 데이터 세트로 가져 오는 부분 답변이 있지만 관계형 링크가있는 테이블 세트로 읽습니다.

        DataSet ds = new DataSet();
        XmlTextReader xmlreader = new XmlTextReader(xmlSource, XmlNodeType.Document, null);
        ds.ReadXml(xmlreader);

다른 팁

실행중인 .NET 버전에 따라 다릅니다. linq2xml을 사용할 수 있다면 쉽습니다. xdocument를 만들고 익명 유형 목록으로 자식 노드를 선택하십시오.

LINQ2XML을 사용할 수 없으면 몇 가지 다른 옵션이 있습니다. 데이터 세트를 사용하는 것은 하나이므로 잘 작동 할 수 있지만 수신중인 XML에 따라 다릅니다. 다른 옵션은 XML에서 읽은 엔티티를 설명하고 수동으로 XML 노드를 통과하는 클래스를 만드는 것입니다. 세 번째 옵션은 XML 직렬화를 사용하고 XML을 객체 목록으로 삼키는 것입니다. 이것은 당신이 그것을 설정하는 클래스가있는 한 잘 작동 할 수 있습니다.

가장 쉬운 옵션은 XDocument를 만들거나 제안한대로 데이터 세트를 작성하는 것입니다.

분명히 귀하의 XML은 유효해야합니다 :)

그런 다음 데이터 세트를 정의하고 Datagrid를 정의하십시오. 데이터 세트의 readxml 메소드를 사용하여 XML로 데이터 세트를 채우고 데이터베이닝으로 마감하면 좋습니다.

DataSet myDataSet = new DataSet();
myDataSet .ReadXml(myXMLString);
myDataGrid.DataSource = myDataSet ; 
myDataGrid.DataBind(); 

xmldatasource 객체를 그리드의 데이터 소스로 간단히 사용할 수 있습니다. 이를 통해 데이터의 사워 인 XML을 선택하기 위해 파일과 XPath를 설정할 수 있습니다. 그런 다음 <%# xpath = "blah"%> 함수를 사용하여 원하는 경우 데이터를 설명 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top