簡體   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