2014-04-14 2 views
0

'여기검색 및 XDocuments는 LINQ를 통해 속성 값을

을 올바른 선택 문을 파악하는 데 문제가 있어요 나는 다음과 같은 XML

<configuration> 
    <other sections> 
    <runtime> 
    <Binding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <probing Path="some path string" /> 
    </Binding> 
    <Concurrent enabled="false" /> 
    </runtime> 
    <other sections> 
</configuration> 

임 내가 경로 문자열을 검색 할 곳에 선택을하려고해야 값

지금까지 나는이

XDocument xdoc = XDocument.Load(XmlfilePath); 

var query = (from c in xdoc.Descendants("probing") 
where c.Attribute("Path") != null 
select c.Attribute("Path").Value).FirstOrDefault(); 

해야하지만이 작동하지 않습니다

var query = (from c in xdoc.Descendants("probing") 
      select (string)c.Attribute("Path")).FirstOrDefault(); 

업데이트 : 보인다 당신이 명시 적 캐스트를 사용할 수 있습니다 다음은 널 (null) 검사가 필요하지 않습니다 .Also 당신의 속성의 이름이 Path하지 privatePath 때문에, 쿼리는

답변

3

null의 경우

XNamespace ns = "urn:schemas-microsoft-com:asm.v1"; 

var query = (from c in xdoc.Descendants(ns + "probing") 
      select (string)c.Attribute("Path")).FirstOrDefault(); 

당신은 XML 네임 스페이스에 대한 자세한 사항은 관련 문서에서 살펴 봐야 할 수 있습니다 :이 같은 네임 스페이스를 지정해야합니다 귀하의 요소는 네임 스페이스가 0,123,650,

+0

죄송 합니다만, XML 경로에서 "privatePath"를 만든 예는 코드 샘플을 변경하는 것을 잊었습니다. 지금 당장 귀하의 예제를 시도했지만 여전히 쿼리 값이 – Domitius

+0

입니다. @Domitius가 이제 네임 스페이스 sorry.I를 보았습니다. 대답을 다시 업데이트했습니다. –

+0

감사합니다. – Domitius

관련 문제