gpt4 book ai didi

c# - 在C#中读取一个xml元素并将元素的新值写回xml

转载 作者:太空宇宙 更新时间:2023-11-03 18:42:23 24 4
gpt4 key购买 nike

我正在尝试读取具有此元素的 abc.xml

            <RunTimeStamp>
9/22/2011 2:58:34 PM
</RunTimeStamp>

我正在尝试读取 xml 文件具有的元素的值并将其存储在字符串中,一旦我完成了处理。我获取当前时间戳并将新时间戳写回 xml 文件。

到目前为止,这是我的代码,请帮助和指导,我们将不胜感激。

        using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using log4net;
using System.Xml;

namespace TestApp
{
class TestApp
{

static void Main(string[] args)
{

Console.WriteLine("\n--- Starting the App --");

XmlTextReader reader = new XmlTextReader("abc.xml");

String DateVar = null;

while (reader.Read())
{
switch (reader.NodeType)
{

case XmlNodeType.Element: // The node is an element.
Console.Write("<" + reader.Name);
Console.WriteLine(">");
if(reader.Name.Equals("RunTimeStamp"))
{
DateVar = reader.Value;
}
break;

case XmlNodeType.Text: //Display the text in each element.
Console.WriteLine(reader.Value);
break;

/*
case XmlNodeType.EndElement: //Display the end of the element.
Console.Write("</" + reader.Name);
Console.WriteLine(">");
break;
*/
}
}
Console.ReadLine();

// after done with the processing.
XmlTextWriter writer = new XmlTextWriter("abc.xml", null);

}
}
}

最佳答案

我个人不会在这里使用 XmlReader 等。我只加载整个文件,最好使用 LINQ to XML:

XDocument doc = XDocument.Load("abc.xml");
XElement timestampElement = doc.Descendants("RunTimeStamp").First();
string value = (string) timestampElement;

// Then later...
timestampElement.Value = newValue;
doc.Save("abc.xml");

简单多了!

请注意,如果该值是 XML 格式的日期/时间,您可以改为转换为 DateTime:

DateTime value = (DateTime) timestampElement;

然后:

timestampElement.Value = DateTime.UtcNow; // Or whatever

但是,这将处理有效的 XML 日期/时间格式 - 否则您将需要使用 DateTime.TryParseExact 等。

关于c# - 在C#中读取一个xml元素并将元素的新值写回xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7520304/

24 4 0