c# - 查询删除 logdatetime 范围内的日志

标签 c# .net xml xpath

<?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>

为了删除我在 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 范围内删除日志的位置。我的 XPath 查询如何删除 LogDateTime 范围内的日志。

示例:如果我必须删除日期时间范围 20130116164038 到 20130116164040 之间的日志。

最佳答案

试试这个:

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

要获取指定日期的所有日志数据,您可以使用此方法:

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

要在 LogDateTime 范围从 '20130114' 到 '20130116' 时获取所有 logdata 你可以使用这个:

strXpathQuery = "/AppXmlLogWritter/LogData[substring(LogDateTime, 1, 8) >='20130114' and substring(LogDateTime, 1, 8) <='20130116']";

关于c# - 查询删除 logdatetime 范围内的日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14393761/

相关文章:

android - Activity 过渡效果 : slide in for the top activity and scale for the bottom activity

xml - XSLT:如何防止 XSLT 代码在输出 xml 中生成冗余空格

c# - 在具有不同数据类型的派生类中覆盖 C# 变量

c# - 在代码隐藏中获取 ASP.NET 控件呈现的 HTML

.net - LESS 与文化代码结合使用

.net - 将 Microsoft Excel 与我的应用程序连接是否合法?

.net - 转换、可分配性和自定义转换

c++ - boost 属性树 xml 编写器输出中没有行尾

C#-根据与另一个列表的部分交集从列表中选择特定项目 (Linq + Lambda)

c# - 如何断开匿名事件?