【问题标题】:Query to delete log between range of logdatetime查询在 logdatetime 范围内删除日志
【发布时间】:2013-01-18 06:46:47
【问题描述】:
<?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 之间的日志。

【问题讨论】:

    标签: c# .net xml xpath


    【解决方案1】:

    试试这个:

    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']";
    

    【讨论】:

    • Hamlet :像 Xpath 中的查询可能意味着我必须获取此日期 20130116 的节点
    • 异常详情:System.Xml.XPath.XPathException: '/AppXmlLogWritter/LogData[starts-with(LogDateTime, '20130116 ']' has an invalid token.
    • 当我使用 strXpathQuery = "/AppXmlLogWritter/LogData[starts-with(LogDateTime, '20130116 ']"; 时,Hamlet 让我遇到上述错误
    • 我错过了右括号。再试一次。
    • 哈姆雷特我在 xpath 查询中有一个问题,你能帮帮我吗
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 2016-08-28
    • 2019-11-24
    • 1970-01-01
    • 2021-10-20
    相关资源
    最近更新 更多