2011-06-12 1 views
0

XML 파일이있어서이 데이터를 데이터베이스에서 검색하여이 데이터를 데이터베이스에 저장할 수 있습니다. 나는 수색했다. 나는 이것을 post이라고 알았다.XML 파일에서 데이터를 검색하려면 어떻게해야합니까?

나는 무엇을 다음과 같은 방법을 모르는 : 당신이 .NET 객체로이 XML을 역 직렬화 할 수 있습니다

는 XML 스키마 만들기 - 당신이 가져올 해당 파일의 톤이있는 경우 가장 잘 작동합니다. 그래서

는 :

  • 좀 기사 또는이 작업을 수행하는 방법의 예를보고 싶습니다.
  • XML 파일에서 가져온 데이터를 어떻게 확인합니까?

답변

2

즉, XML 파일의 구조를 반영한 ​​.NET 개체를 작성한 다음이 개체의 인스턴스에 다시 XML 파일을 deserialize 할 수 있습니다. 다음

public class User 
{ 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
} 

및 역 직렬화 : 닷넷 객체에

var serializer = new XmlSerializer(typeof(User)); 
using (var reader = XmlReader.Create("test.xml")) 
{ 
    User user = (User)serializer.Deserialize(reader); 
} 

할 수 있습니다 apply attributes에서

<User> 
    <FirstName>John</FirstName> 
    <LastName>John</LastName> 
</User> 

당신이 사용자 클래스를 가질 수있다 : 예를 들어, 당신은 다음과 같은 XML이있는 경우 serialization/deserialization 프로세스를 제어하기위한 명령.

XML 파일의 유효성 검사와 관련하여 파일의 데이터 구조를 나타내는 XSD 스키마 (XML 파일)를 작성한 다음 validate it against this schema을 작성할 수 있습니다. 이렇게하면 입력 된 XML 파일이 정의 된 규칙 (올바른 노드 이름, 필수 속성 등)을 갖게됩니다.

+0

대단히 감사합니다. 질문이 하나 더 있습니다. 어떤 방법이 가장 좋습니까?이 방법 또는'LINQ to XML'. 그리고 만약 내가 반대로 행동을하고 싶다면, 나는 데이터베이스에서 XML 파일로 데이터를 변환하는 것을 의미합니다.이 방법은 편리 할 것입니다. –

+1

@just_name은 여러 요소에 따라 다릅니다. 가장 좋은 방법은 없습니다. 둘 다 당신이하려고하는 것에 따라 유효합니다. 예를 들어 메모리에 저장할 수없는 매우 큰 데이터가있는 경우 개체 직렬화/직렬화 대신 XmlReader/XmlWriter와 같은 읽기/쓰기 용 스트리밍 API를 사용해야합니다. –

+0

고마워 .... –

1

"이 XML을 .NET 객체로 역 직렬화 할 수 있도록 XML 스키마 만들기 - 가져올 파일이 많을 경우 가장 효과적입니다." 당신은 비주얼 스튜디오를 사용하여 스키마를 만들 수 있습니다

Instructions

1

: 여기

당신이 그것을 달성하는 방법을 보여줍니다 링크입니다. VS로 XML 파일을 열면됩니다. 그런 다음 XML-> 스 06 작성 메뉴를 선택하십시오.

또는 당신은 Xsd.exe tool 사용할 수 있습니다

  • 먼저 추출 쉐마 명령 xsd.exe의 your.xml
  • 둘째 명령을 xsd.exe your.xsd를 사용하여 생성 된 스키마에서 클래스를 생성하여/클래스

here n xsd를 사용하여 xml을 검증하는 방법을 찾으십시오.