首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查现有XML元素内容并将其替换

检查现有XML元素内容并将其替换
EN

Stack Overflow用户
提问于 2014-04-04 08:46:22
回答 1查看 98关注 0票数 0

我有一个c#应用程序,它使用以下代码写入XML:

代码语言:javascript
复制
     //Write last compliant elements to state XML if allCompliant bool == true
        if (allCompliant == true)
        {
            if (File.Exists(MainEntry.thirdPartyStateXMLPath))
            {
                XDocument doc = XDocument.Load(MainEntry.thirdPartyStateXMLPath);

                DateTime localCurrentTime = DateTime.Now;
                DateTime utcCurrentTime = DateTime.UtcNow;

                XElement root = new XElement("Compliance_Status");

                root.Add(new XElement("Last_Known_Compliant_UTC", utcCurrentTime));
                root.Add(new XElement("Last_Known_Compliant_LocalTime", localCurrentTime.ToString()));
                doc.Element("Compliance_Items").Add(root);
                doc.Save(MainEntry.thirdPartyStateXMLPath);

            }

        }

这将呈现以下XML:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<Compliance_Items>
  <Compliance_Status>
    <Last_Known_Compliant_UTC>2014-04-03T23:22:31.507088Z</Last_Known_Compliant_UTC>
    <Last_Known_Compliant_LocalTime>4/3/2014 4:22:31 PM</Last_Known_Compliant_LocalTime>
  </Compliance_Status>
</Compliance_Items>

这段代码生成*Last_Known_Compliant_UTC*和*Last_Known_Compliant_LocalTime*元素和值。在代码的后续运行中,我希望它只替换现有元素的值,但正如现在所写的,每次都会重新创建以下内容,并将其堆叠在XML中:

代码语言:javascript
复制
<Compliance_Status>
     <Last_Known_Compliant_UTC>2014-04-03T23:22:31.507088Z</Last_Known_Compliant_UTC>
     <Last_Known_Compliant_LocalTime>4/3/2014 4:22:31 PM</Last_Known_Compliant_LocalTime>
</Compliance_Status>

怎样才能达到预期的效果?

EN

回答 1

Stack Overflow用户

发布于 2014-04-04 08:50:40

如果您想获取并修改特定的项目,您可以执行以下操作:

代码语言:javascript
复制
var xmlDocument = XDocument.Load("path");

var element = xmlDocument
.Descendants("Compliance_Status")
.FirstOrDefault(x => (DateTime)x.Element("Last_Known_Compliant_UTC") == someValue)

if(element != null) 
  /* update the value simply using element.Value = something 
     and save the xml file  xmlDocument.Save("path") */

如果您想用另一个元素替换您的元素,可以使用XElement.ReplaceWith方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22851573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档