2013-01-21 3 views
-1
<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<AppXmlLogWritter>  
    <LogData> 
    <LogID>5678201301211226306349434819061642515658</LogID> 
    <LogDateTime>**20130121**122630</LogDateTime> 
    <LogType>Warning</LogType> 
    <LogFlag>PMLogFlag</LogFlag> 
    <LogApplication>PMLogApplication</LogApplication> 
    <LogModule>PMLogModule</LogModule> 
    <LogLocation>PMLogLocation</LogLocation> 
    <LogText>PMLogText</LogText> 
    </LogData> 
    <LogData> 
    <LogID>5678201301211226306349434819063542617610</LogID> 
    <LogDateTime>**20130121**122630</LogDateTime> 
    <LogType>Warning</LogType> 
    <LogFlag>PMLogFlag</LogFlag> 
    <LogApplication>PMLogApplication</LogApplication> 
    <LogModule>PMLogModule</LogModule> 
    <LogLocation>PMLogLocation</LogLocation> 
    <LogText>PMLogText</LogText> 
    </LogData> 
    <LogData> 
    <LogID>5678201301211226306349434819065542731198</LogID> 
    <LogDateTime>**20130121**122630</LogDateTime> 
    <LogType>Warning</LogType> 
    <LogFlag>PMLogFlag</LogFlag> 
    <LogApplication>PMLogApplication</LogApplication> 
    <LogModule>PMLogModule</LogModule> 
    <LogLocation>PMLogLocation</LogLocation> 
    <LogText>PMLogText</LogText> 
    </LogData> 
    <LogData> 
    <LogID>5678201301211226306349434819067442849561</LogID> 
    <LogDateTime>**20130117**122630</LogDateTime> 
    <LogType>Warning</LogType> 
    <LogFlag>PMLogFlag</LogFlag> 
    <LogApplication>PMLogApplication</LogApplication> 
    <LogModule>PMLogModule</LogModule> 
    <LogLocation>PMLogLocation</LogLocation> 
    <LogText>PMLogText</LogText> 
    </LogData> 
</AppXmlLogWritter> 

위의 XmL 파일에서 XML 문서를 범위 사이에서 읽고 싶습니다. 그런 나는 날짜와 날짜 및 하나의 제출 단추에 datetimepicker 컨트롤을 사용하여 windows 폼을 구현합니다. 날짜를 FROM DATE에서 선택하고 TO DATE에서 TO DATE의 목록보기로 날짜를 표시합니다. XPath 쿼리로 날짜 범위 사이에 데이터를 가져 오는 방법

private void btnSubmit_Click(object sender, EventArgs e) 
     { 
XmlElement objXmlRoot = objXmldoc.DocumentElement; 
if (chkBoxFromDate.Checked && chkBoxToDate.Checked) 
      { 
       strXpathQuery = "/AppXmlLogWritter/LogData[LogDateTime >='" + dateTimePickerFromDate.Value.ToString("yyyyMMdd") + "' and LogDateTime <='" + dateTimePickerToDate.Value.ToString("yyyyMMdd") + "']"; 
} 
} 

이 쿼리를 사용하여 데이터를 표시하지만 빈 데이터가 표시됩니다.

+1

형식인가? http://stackoverflow.com/questions/14435803/xpath-query-to-select-data-in-range – I4V

답변

0

나는 데자뷰의 느낌을 얻고 있습니다. 그냥 answer this question for you 아니 었습니까? 이 숙제는

strXpathQuery = "/AppXmlLogWritter/LogData[substring(LogDateTime, 1, 8) > " + 
    dateTimePickerFromDate.Value.ToString("yyyyMMdd") + 
    " and substring(LogDateTime, 1, 8) <= " + 
    dateTimePickerToDate.Value.ToString("yyyyMMdd") + "]"; 

또는 좀 더 잘

strXpathQuery = 
    string.Format("/AppXmlLogWritter/LogData[substring(LogDateTime, 1, 8) > {0:yyyyMMdd} and substring(LogDateTime, 1, 8) <= {1:yyyyMMdd}]", 
    dateTimePickerFromDate.Value, dateTimePickerToDate.Value); 
관련 문제