在 XML 中更新 ChildNode

update a childnode in xml

提问人:Tue Sandbæk 提问时间:3/15/2023 最后编辑:Tue Sandbæk 更新时间:3/17/2023 访问量:46

问:

我有一个xml fil,我想在其中更新其中一个节点。 我没有错误,代码对 xml 做了一些事情,文件上的时间戳发生了变化。 但是文档内部没有更新。

我有这个xml文件:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<CGTemplateDATA>
  <title>Reden i Smedager</title>
  <text>Det er tidligt på sæsonen. Vi håber på bedre vejr og en mage til Clyde.</text>
  <reference>Læs mere om storkene på storkene.dk</reference>
</CGTemplateDATA>

我使用这个脚本:

XmlNode root = doc.DocumentElement;
//Get node
XmlNode nodeTitle = doc.DocumentElement.SelectSingleNode("title");
//Create a new title element
XmlElement elem = doc.CreateElement("title");
elem.InnerText = txtTitle.Text;
//Replace the title element.
root.ReplaceChild(elem, nodeTitle);
asp.net xml

评论

0赞 Yitzhak Khabinsky 3/15/2023
在提出问题时,您需要提供一个最小的可重现示例:请编辑您的原始问题并提供以下内容:(1) XML 文件示例。(2)你需要做什么,即逻辑,以及你的代码尝试实现它。(3) 基于上述 #1 中的示例数据的所需输出。

答:

0赞 Yitzhak Khabinsky 3/15/2023 #1

使用 LINQ to XML API 更好、更容易。自 2007 年以来,它在 .Net Framework 中可用。

该方法可以完成这项工作。.SetValue()

下面是一个链接,您可以在其中查看如何在 ASP.NET 中检索文本框值:从 Asp.Net TextBox 中检索值

c#

void Main()
{
    // XDocument xdoc = XDocument.Load(<fullyQualifiedPath>);
    XDocument xdoc = XDocument.Parse(@"<CGTemplateDATA>
          <title>Reden i Smedager</title>
          <text>Det er tidligt på sæsonen. Vi håber på bedre vejr og en mage til Clyde.</text>
          <reference>Læs mere om storkene på storkene.dk</reference>
        </CGTemplateDATA>");

    xdoc.Element("CGTemplateDATA").Element("title").SetValue("New Title");
   // or even better option
   xdoc.Descendants("title").FirstOrDefault().SetValue("Even Better Title");
}

输出

<CGTemplateDATA>
  <title>New Title</title>
  <text>Det er tidligt på sæsonen. Vi håber på bedre vejr og en mage til Clyde.</text>
  <reference>Læs mere om storkene på storkene.dk</reference>
</CGTemplateDATA>

enter image description here

评论

0赞 Tue Sandbæk 3/15/2023
除了文档的时间戳之外,它不会更改任何内容,也不会给我任何错误。
0赞 Yitzhak Khabinsky 3/15/2023
我的答案是遵循最小可重现的示例模式。你按原样运行它,它正在工作,并产生所需的输出。
0赞 Tue Sandbæk 3/16/2023
我不明白吗?是否应该在解析中只写xml文档的路径?
0赞 Yitzhak Khabinsky 3/16/2023
如果您需要从文件系统加载 XML 文件,我在答案中添加了一个注释行。如果您的 XML 文件与您作为示例提供的文件不同,则需要编辑您的问题并提供真实的 XML。
0赞 Tue Sandbæk 3/17/2023
谢谢。现在我只需要在字段内获取正确的文本。我已经更新了我的问题...