Member 11403304 Ответов: 1

Мне нужна помощь, чтобы обновить XML-файл


То, что я пытаюсь сделать, - это использовать переменную в коде vb для обновления конфигурационного файла xml. <LastRunDateTime>2018-03-30T00:00:00</LastRunDateTime> каждый раз, когда программа запускается, strSQL.
Я хочу только обновить LastRunDateTime текст узла

Вот конфигурационный xml файл:
<?xml version="1.0" encoding="UTF-8"?>
<DocGetAuditReport.Config>
	<LastRunDateTime>2018-03-30T00:00:00</LastRunDateTime>
</DocGetAuditReport.Config>


Что я уже пробовал:

 Public Class MyClassR
    Shared Sub main()
        Dim strLastRunDateTime As String
		Dim dtmCurrentDateTime As Date = Now
        Dim objXmlConfigDoc As XmlDocument
        Dim strSQL As String
        Dim objXmlResultDoc As XmlDocument
        Dim objXMLNode As XmlNode
        Try
           'Load DocGetAuditReport file and get last run date time dtmLastRunDateTime
            'Dim objXmlTaskConfigDoc As XmlDocument = Msc.Integration.Utility.Library.v4.ProgramExecution.GetConfigFile("Msc.Integration.MessageWarehouse.Task.v4.DocGetAuditReport.Config.xml")
			 Dim objXmlTaskConfigDoc As XmlDocument = GetConfigFile("Config.xml")
            strLastRunDateTime = objXmlTaskConfigDoc.DocumentElement.SelectSingleNode("LastRunDateTime").InnerText.Replace("T", " ")
            strSQL = GetSql(strLastRunDateTime, dtmCurrentDateTime)

            'THIS IS WHERE I would like to use variable dtmCurrentDateTime to update objXmlConfigDoc xml file with current date instead of what it has now <LastRunDateTime>2018-03-30T00:00:00</LastRunDateTime>
            'objXmlConfigDoc = GetConfigFile("Config.xml")
    End Sub
    Private Shared Function GetSql(ByVal astrLastRunDateTime As String, ByVal adtmCurrentDateTime As Date) As String
        Dim strSQL As String
        strSQL ="SELECT Something, ProcessDateTime AS 'RequestDateTime'," + vbCrLf +
        "FROM TableName" + vbCrLf +
       "And (ProcessDateTime > CONVERT(DATETIME, '" + astrLastRunDateTime + "', 102))" + vbCrLf +
     "AND (ProcessDateTime <= CONVERT(DATETIME, '" + adtmCurrentDateTime.ToString + "', 102))" + vbCrLf +
       Return strSQL
    End Function
End Class

Maciej Los

Что.Чистая структура: 2, 3, 3.5, ...?

1 Ответов

Рейтинг:
10

Maciej Los

Ты на правильном пути! Небольшое улучшение:

Dim xNode As XmlNode = objXmlTaskConfigDoc.DocumentElement.SelectSingleNode("DocGetAuditReport.Config/LastRunDateTime")
xNode.InnetText = DateTime.Today.ToString("yyyy-MM-dd")
'save xml here!


Member 11403304

Как мне сделать так, чтобы дата выглядела так 2018-03-30T00:00:00

Maciej Los

Подобный этому:

xNode.InnetText = DateTime.Today.ToString("yyyy-MM-ddTHH:mm:ss")

На случай если вы хотите сохранить часть времени:
xNode.InnetText = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss")

Member 11403304

Потрясающий. Это работает! Спасибо Мацей Лос

Maciej Los

Всегда пожалуйста.

Овации,
Мацей