2010-04-13 4 views
1

C#에서 SOAP xml 응답을 구문 분석하고 싶습니다 (wsld가 잘못 되었기 때문에 표준 SOAP 인터페이스를 사용할 수 없습니다).C#에서이 간단한 XML을 어떻게 구문 분석합니까?

구문 분석시 이름이있는 모든 요소 (이름이있는 목록 요소)와 모든 하위 요소에 대한 액세스 권한을 갖기를 원합니다.

는 XML의 전체 모양 :

<return> 
    <item> 
    <attr1>1</attr1> 
    <attr2>X</attr2> 
    </item> 
    <item> 
    <attr1>2</attr1> 
    <attr2>Y</attr2> 
    </item> 
... 
</return> 

감사

+0

구글 Linq에 대한처럼 뭔가를하고있는만큼 간단합니다. 그것은 내 생각에 간단한 XML을 구문 분석 할 수있는 가장 쉬운 방법입니다 – Henri

답변

2

XMLDocument 클래스 또는 XElement를 클래스와 XML을 구문 분석 할 수 있습니다. 새로운 사용 시작

using System.Xml.Linq; 

그러면 linq 쿼리를 작성하여 XML 파일을 열 수 있습니다. (필자의 예제에서는 웹 애플리케이션이지만 변경할 수있다.) 분석하려는 요소를 그룹화 한 요소의 자손을 가져온다. 그 결과로 무언가를하십시오. 필자의 경우 정확한 값으로 새 객체를 채우고 있습니다. XML에 LINQ를 사용

XDocument changesetXML = XDocument.Load(Server.MapPath(@"~\changesets.xml")); 

return from changeset in changesetXML.Descendants("Changeset") 
     select new NewsTopic 
     { 
      DateAdded = changeset.Element("Date").Value, 
      Content = changeset.Element("Summary").Value 
     }; 
0

당신은 당신은 당신의 XML에 도착 일부 LINQ 구문을 사용할 수

+0

또는 동적 (.NET 4 이후) – Ivo

1

, 그것은 XML에 다음

XDocument document = XDocument.Load(fileName); // or .Parse(string) + other methods 

var query = from item in document.Descendants("item") 
      select new 
      { 
       Attr1 = (int)item.Element("attr1"), 
       Attr2 = (string)item.Element("attr2") 
      }; 
0
XmlDocument doc = new XmlDocument(); 
doc.Load(“myxml.xml"); 

foreach(XmlNode xn in doc) 
    { 
    foreach(XmlElement element in xn) 
    { 
    //do something 

    } 
} 
관련 문제