So setzen Sie Attribute über XElement


126

Ich habe diesen Code:

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.

Wie füge ich Attribute hinzu Conn? Ich möchte die Attribute hinzufügen, die ich als Kommentare markiert habe, aber wenn ich versuche, die Attribute Connnach dem Definieren zu aktivieren EcnAdminConf, sind sie nicht sichtbar.

Ich möchte sie irgendwie so einstellen, dass das XML so aussieht:

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

Antworten:


252

Fügen Sie XAttributeim Konstruktor von XElement, wie

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

Sie können auch mehrere Attribute oder Elemente über den Konstruktor hinzufügen

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

oder Sie können die Add-Methode von verwenden XElement, um Attribute hinzuzufügen

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

Ist es möglich, eine Liste oder ein Array von xAttr zu erstellen und alle gleichzeitig hinzuzufügen?
Greg

@greg Sie könnten die .Add () - Überladung verwenden, um mehrere XAttribute-Objekte ( docs.microsoft.com/de-de/dotnet/api/… ) zu übergeben
Jehof
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.