繁体   English   中英

向现有xml的元素添加属性

[英]Adding attributes to xelements of existing xml

这是我的代码:

var nodes = XDocument.Parse(gridxml).Root.Elements();
                    var attribute = new XAttribute("open", "0");
                    foreach (var node in nodes)
                    {
                        node.Add(attribute);
                    }

当我在调试模式下检查节点的值时,我看到它们全部具有open属性。 但是,当我检查gridxml的值时,元素没有open属性。 我究竟做错了什么?

您的示例中的gridxml是一个您从未修改过的String XDocument不是XML友好的String包装器,它是一个单独的对象,它对其初始化的String没有影响。

您应该检查xdoc.ToString()而不是gridxml 如果由于某种原因需要在原始变量中包含更新的内容,请在添加属性后执行gridxml = xdoc.ToString()

您正在将属性添加到节点的副本,请尝试以下操作:

        string gridxml = "<node1><node2></node2><node3></node3></node1>";

        var xdoc = XDocument.Parse(gridxml);
        var attribute = new XAttribute("open", "0");

        foreach (var node in xdoc.Root.Elements())
        {
            node.Add(attribute);
        }

        Console.WriteLine(xdoc.ToString());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM