stevenjin 2024-05-21 23:32 采纳率: 96.8%
浏览 3
已结题

设置xml节点中符合条件的属性值

设置id为2的state属性值为outStore


<?xml version="1.0"?>
-<device>
<info id="1" name="Digital Machine1" state="inStore"/>
<info id="2 name="Digital Machine2" state="inStore"/>
</device>
  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2024-05-21 23:32
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    您想要解决的问题:

    您想要解决的问题是如何在C#中通过编程方式修改XML文件中特定节点的属性值。具体来说,您希望将XML文件中id为2的info节点的state属性值从"inStore"更改为"outStore"。

    问题出现原因:

    这个问题可能出现的原因是因为您需要根据某些业务逻辑动态地更新XML文件中的数据。在服务器端编程中,经常需要对存储在XML文件中的数据进行读取和修改。

    问题解决方案:

    为了解决这个问题,您可以使用C#中的System.Xml命名空间中的类来解析和修改XML文件。以下是使用XDocument类来实现您的要求的步骤:

    1. 加载XML文档。
    2. 查找id为2的info节点。
    3. 修改该节点的state属性值为"outStore"。
    4. 保存修改后的XML文档。

    提供代码:

    using System;
    using System.Xml.Linq;
    
    class Program
    {
        static void Main()
        {
            string xmlContent = @"<?xml version=""1.0""?>
            <device>
                <info id=""1"" name=""Digital Machine1"" state=""inStore""/>
                <info id=""2"" name=""Digital Machine2"" state=""inStore""/>
            </device>";
    
            XDocument xmlDoc = XDocument.Parse(xmlContent);
    
            // 查找id为2的info节点
            var infoNode = xmlDoc.Descendants("info")
                .FirstOrDefault(i => (string)i.Attribute("id") == "2");
    
            if (infoNode != null)
            {
                // 修改state属性值为outStore
                infoNode.SetAttributeValue("state", "outStore");
    
                // 保存修改后的XML文档
                xmlDoc.Save("UpdatedDevice.xml");
            }
    
            Console.WriteLine("XML has been updated.");
        }
    }
    

    代码运行方式:

    您需要在支持C#的IDE(如Visual Studio)或者编译环境中运行上述代码。如果您在命令行中运行,需要先编译代码,然后执行生成的可执行文件。

    代码预期运行结果:

    <?xml version="1.0"?>
    <device>
      <info id="1" name="Digital Machine1" state="inStore"/>
      <info id="2" name="Digital Machine2" state="outStore"/>
    </device>
    

    运行上述代码后,您会得到一个名为"UpdatedDevice.xml"的文件,其中id为2的info节点的state属性值已被更新为"outStore"。

    推荐相关链接:

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 5月30日
  • 已采纳回答 5月22日
  • 创建了问题 5月21日