3
<?xml version="1.0"?>
<AppXmlLogWritter>
  <LogData>
    <LogID>5678201301161640382919</LogID>
    <LogDateTime>20130114164038</LogDateTime>            
  </LogData>
  <LogData>
    <LogID>5678201301161640382920</LogID>
    <LogDateTime>20130115154040</LogDateTime>           
  </LogData>
  <LogData>
  <LogID>5678201301161640382921</LogID>
  <LogDateTime>20130116164042</LogDateTime>          
  </LogData>
</AppXmlLogWritter>

1つのノードを削除するために、xpathクエリの下で使用しました

string xpathQuery = "/AppXmlLogWritter/LogData[LogDateTime ='" + txtToDate.Text.Trim() + "']";
XmlNodeList objxmlNodeList = objXmldoc.SelectNodes(xpathQuery);
for (int i = 0; i <= objxmlNodeList.Count - 1; i++)
{
    objxmlNodeList[i].ParentNode.RemoveChild(objxmlNodeList[i]);
    lblMessage.Text = "Record deleted sucessfully.";
}

さまざまなアプリケーションのXMLファイルにログを書き込んでいます。ユーザーがLogDateTimeの範囲の間でログを削除できる場所。LogDateTimeの範囲の間でログを削除するためのXPathクエリはどのようになっていますか。

例:日時範囲20130116164038から20130116164040までのログを削除する必要がある場合。

4

1 に答える 1

2

これを試して:

strXpathQuery = "/AppXmlLogWritter/LogData[LogDateTime >='" + txtFromDate.Text.Trim() + "' and LogDateTime <='" + txtToDate.Text.Trim() +"']";

指定した日付のすべてのログデータを取得するには、次のように使用できます。

strXpathQuery = "/AppXmlLogWritter/LogData[starts-with(LogDateTime, '20130116')]";

'20130114' から '20130116' までの範囲にあるlogdata場合にすべてを取得するには、これを使用できます。LogDateTime

strXpathQuery = "/AppXmlLogWritter/LogData[substring(LogDateTime, 1, 8) >='20130114' and substring(LogDateTime, 1, 8) <='20130116']";
于 2013-01-18T06:55:57.667 に答える