2009-08-06 2 views
17

중복 : 이것은 Best practices to parse xml files with C#? 및 많은 다른 사람 (https://stackoverflow.com/search?q=c%23+parse+xml 참조)의 복제본입니다. 그것을 닫고 대답하지 마십시오.C#의 XML 문서를 구문 분석


어떻게 XML 문서를 C#에서 위로부터 구문 분석합니까? 예를 들어

:이처럼

<Employee> 
    <Name> Test </name> 
    <ID> 123 </ID> 
<Employee> 
<Company> 
    <Name>ABC</company> 
    <Email>[email protected]</Email> 
</company> 

많은 nodes..I이 <company>을 분석 like..first까지 바닥에서 구문 분석을 시작하고 그래서 on..How 도이는 C#으로 이것에 대해 갈 필요가있다 ?

+0

저는 Linq의 [XDocument] (http://msdn.microsoft.com/en-us/library/system.xml.linq.xdocument.aspx)를 좋아합니다. – DanDan

+0

[XmlSerializer] (http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx) 클래스를 사용할 수 있습니다. 수업을 듣고 XML 파일을 쉽게 읽고 쓸 수 있습니다. – speps

+0

checkout the System.Xml 네임 스페이스 http://msdn.microsoft.com/en-us/library/system.xml%28VS.80%29.aspx – nWorx

답변

60

이 시도 :

XmlDocument doc = new XmlDocument(); 
doc.Load(@"C:\Path\To\Xml\File.xml"); 

또는 대안 당신은 문자열의 XML이 LoadXml 방법을 사용하는 경우. 당신이 그것을로드 일단

, 당신은 예를 들어, 특정 값을 조회 할 수 SelectNodesSelectSingleNode를 사용할 수 있습니다

XmlNode node = doc.SelectSingleNode("//Company/Email/text()"); 
// node.Value contains "[email protected]" 

마지막으로, XML이 유효주의는 하나의 루트 노드를 포함하지 않는. 다음과 같이되어야합니다 :

<Data> 
    <Employee> 
     <Name>Test</Name> 
     <ID>123</ID> 
    </Employee> 
    <Company> 
     <Name>ABC</Name> 
     <Email>[email protected]</Email> 
    </Company> 
</Data>