[英]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.