如何通过 XElement 放置属性

Posted

技术标签:

【中文标题】如何通过 XElement 放置属性【英文标题】:How to put attributes via XElement 【发布时间】:2011-07-01 03:21:21 【问题描述】:

我有这个代码:

XElement EcnAdminConf = new XElement("Type",
    new XElement("Connections",
    new XElement("Conn"),
    // Conn.SetAttributeValue("Server", comboBox1.Text);
    // Conn.SetAttributeValue("DataBase", comboBox2.Text))),
    new XElement("UDLFiles")));
    // Conn.

如何向Conn 添加属性?我想添加我标记为cmets的属性,但是如果我在定义EcnAdminConf之后尝试在Conn上设置属性,它们是不可见的。

我想以某种方式设置它们,使 XML 看起来像这样:

<Type>
  <Connections>
    <Conn ServerName="FAXSERVER\SQLEXPRESS" DataBase="SPM_483000" /> 
    <Conn ServerName="FAXSERVER\SQLEXPRESS" DataBase="SPM_483000" /> 
  </Connections>
  <UDLFiles /> 
</Type>

【问题讨论】:

【参考方案1】:

XElement的构造函数中添加XAttribute,点赞

new XElement("Conn", new XAttribute("Server", comboBox1.Text));

你也可以通过构造函数添加多个属性或元素

new XElement("Conn", new XAttribute("Server", comboBox1.Text), new XAttribute("Database", combobox2.Text));

或者你可以使用XElement的Add-Method来添加属性

XElement element = new XElement("Conn");
XAttribute attribute = new XAttribute("Server", comboBox1.Text);
element.Add(attribute);

【讨论】:

是否可以构建一个 xAttr 的列表或数组并一次性添加它们? @greg 你可以使用 .Add()-overload 来传递多个 XAttribute 对象 (docs.microsoft.com/de-de/dotnet/api/…)

以上是关于如何通过 XElement 放置属性的主要内容,如果未能解决你的问题,请参考以下文章

如何确定 XElement.Elements() 是不是包含具有特定名称的节点?

如何在 XElement 上放置命名空间别名?如何将数据源添加到现有 RDL 文档?

从 XElement 获取子元素 [重复]

如何搜索具有特定属性值的 XElement?

如何将带有 xml 后代的 XElement 导入 SQL Server

如何将子元素作为解码字符串添加到 XElement?