2010-12-21 6 views
0

Xmldocument에서 필터/특성 비교를 적용하려고합니다. 분명히 number() 함수를 사용하여 표현식을 변환 할 수 없으므로 다음 코드 스 니펫이 작동하지 않습니다. (내 다른 질문의 대답에 따라).XmlDocument datetime 문자열로 노드 필터링

XmlDoc에서 DateTime 문자열 비교를 수행하는 방법이 있는지 궁금합니다.

XmlNodeList test = x2PathDoc.SelectNodes("//Config 
             /Entity 
              [@TargetDateTime> 
              '2010-12-19T03:25:00-08:00']"); 

답변

1

비교를 수행 할 때 xpath는 매개 변수를 숫자로 변환합니다. '2010-12-19T03 : 25 : 00-08 : 00'은 숫자로 변환 할 수 없으므로 SelectNode는 빈 목록을 반환합니다.

날짜를 다른 형식으로 저장하여 숫자로 변환 할 수 있다면 괜찮을 것입니다. 아래 예를 참조하십시오. 날짜 형식은 yyyymmdd.hhmmss입니다.

var root = new XmlDocument(); 
root.LoadXml(@"<dates><date value=""20060419.201500""/><date value=""20060420.201500""/><date value=""20060421.201500""/></dates>"); 

var node = root.SelectNodes(@"dates/date[@value < 20060421.235959]")I 
관련 문제