2012-11-07 2 views
1

나는이처럼 보이는 REST 호출에서 반환 된 일부 XML있어 :XElement.Parse를 사용하고 특정 요소의 값을 찾는 방법?

나는 API 호출을 실행에 도움이되는 RestSharp API를 사용하고 LINQ - 투 -를 사용하려고 해요
<ArrayOfProperty xmlns=\"http://schemas.microsoft.com/HPCS2008R2/common\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"> 
    <Property> 
    <Name>Id</Name> 
    <Value>17</Value> 
    </Property> 
    <Property> 
    <Name>StartTime</Name> 
    <Value>11/7/2012 9:13:50 PM</Value> 
    </Property> 
    <Property> 
    <Name>State</Name> 
    <Value>Failed</Value> 
    </Property> 

xml XElement.Parse 결과를 구문 분석합니다. 나는 국가의 가치를 얻을하는 방법을 잘 모르겠어요 같은 내가 좋아하는 뭔가를하고 싶은이 문서 내에서 것을 : 텍스트를 얻을 수

XElement.Parse(XMLstring).Elements???을 요소 상태지만이 포함 요소의 집합에서 "실패" <Value>Failed</Value> 요소에서 "Failed"텍스트를 원합니다. 그 값 요소는 여러 값을 가질 수 있지만 항상 상태와 관련된 값을 원합니다.

아이디어가 있으십니까?

답변

1

XML에 기본 네임 스페이스가 포함되어 있으므로 XML을 정의하고 쿼리에 사용해야합니다.

XNamespace ns = "http://schemas.microsoft.com/HPCS2008R2/common"; 

var value = (string)XDocument.Parse(input) 
    .Descendants(ns + "Property") 
    .Where(p => (string)p.Element(ns + "Name") == "State") 
    .Elements(ns + "Value").FirstOrDefault(); 
+1

굉장! 정말 고맙습니다; 나는이 두뇌에 내 뇌를 두르고 있었다. –

+1

@ChrisTownsend, 오신 것을 환영합니다! –

관련 문제