2017-11-13 6 views
1

마지막 노드의 자식 요소가 필요하다는 것을 알기 전에 첫 번째 노드의 자식 요소 PovprecnaPlaca을 사용했습니다. 참조를 위해 XML의xPath 또는 다른 것을 사용하여 마지막 XML 항목을 어떻게 얻을 수 있습니까?

사진 :

Picture of XML for reference

모든 도움이 답변을 감사합니다!

XML은 다음과 같습니다

<PovprecnaPlaca> 
    <Datum>2017-07-01T00:00:00</Datum> 
    <BrutoPlacaZadnje3Mesece>1603,00</BrutoPlacaZadnje3Mesece> 
    <NetoPlacaZadnje3Mesece>1045,12</NetoPlacaZadnje3Mesece> 
    <BrutoPlaca>1593,10</BrutoPlaca> 
    <NetoPlaca>1039,55</NetoPlaca> 
</PovprecnaPlaca> 
<PovprecnaPlaca> 
    <Datum>2017-08-01T00:00:00</Datum> 
    <BrutoPlacaZadnje3Mesece>1602,98</BrutoPlacaZadnje3Mesece> 
    <NetoPlacaZadnje3Mesece>1045,45</NetoPlacaZadnje3Mesece> 
    <BrutoPlaca>1613,62</BrutoPlaca> 
    <NetoPlaca>1051,73</NetoPlaca> 
    </PovprecnaPlaca> 
</Place> 
</PovprecnePlace> 
+0

사용중인 Xpath가 잘못되었습니다. 또한 결과를 캐스팅해야합니다. 파일의 마지막 날짜 만 원하거나 각'Place' 노드의 마지막 날짜 만 원합니까? 이미지가 아닌 질문에 코드를 추가하십시오. – derloopkat

+0

의견을 보내 주셔서 감사합니다. 내 코드가 추가됩니다. 나는 각 장소 노드의 마지막을 원한다, 나는 단지 마지막 날짜를 얻는 것을 실험하려고했다. – Pungiish

답변

0

Place의 마지막 PovprecnaPlaca에서 Datum 노드를 가져옵니다.

var nodes = xdoc.XPathSelectElements("//PovprecnaPlaca[last()]/Datum"); 

각 노드 내부의 텍스트를 가져옵니다. 당신이 시도가 작동하지 않는 이유

List<string> results = nodes.Select(d => d.Value).ToList(); 

두 가지 이유 : 1)이 문서의 "/"루트 노드에서 시작이 수준에서 PovprecnaPlaca 노드가 없습니다. 2) text()을 호출하면 XPathSelectElements()을 호출 할 때 결과적으로 노드를 예상하므로 Linq에서 예외가 발생하는 XText이 발생합니다.

+0

디버깅 할 때 PovprecnaPlaca를 Placa로 변경 했으므로 처음에는 올바르게했습니다. 하지만 나는 '/'와 '//'를 어떻게 사용하는지 모르므로 작동하지 않을 수 있습니다. 답변 주셔서 감사합니다:) – Pungiish