XElement Konstruktorer

Definition

Initierar en ny instans av XElement klassen.

Överlagringar

Name Description
XElement(XElement)

Initierar en ny instans av XElement klassen från ett annat XElement objekt.

XElement(XName)

Initierar en ny instans av XElement klassen med det angivna namnet.

XElement(XStreamingElement)

Initierar en ny instans av XElement klassen från ett XStreamingElement objekt.

XElement(XName, Object)

Initierar en ny instans av XElement klassen med det angivna namnet och innehållet.

XElement(XName, Object[])

Initierar en ny instans av XElement klassen med det angivna namnet och innehållet.

Exempel

I följande exempel skapas ett XML-träd. Innehållet i det nya elementet kommer från en LINQ-fråga.

XElement xmlTree1 = new XElement("Root",
    new XElement("Child", 1),
    new XElement("Child", 2),
    new XElement("Child", 3),
    new XElement("Child", 4),
    new XElement("Child", 5),
    new XElement("Child", 6)
);

XElement xmlTree2 = new XElement("Root",
    from el in xmlTree1.Elements()
    where((int)el >= 3 && (int)el <= 5)
    select el
);
Console.WriteLine(xmlTree2);
Dim xmlTree1 As XElement = _
        <Root>
            <Child>1</Child>
            <Child>2</Child>
            <Child>3</Child>
            <Child>4</Child>
            <Child>5</Child>
            <Child>6</Child>
        </Root>

Dim xmlTree2 As XElement = _
    <Root>
        <%= From el In xmlTree1.Elements() _
            Where el.Value >= 3 And el.Value <= 5 _
            Select el %>
    </Root>

Console.WriteLine(xmlTree2)

Det här exemplet genererar följande utdata:

<Root>
  <Child>3</Child>
  <Child>4</Child>
  <Child>5</Child>
</Root>

Kommentarer

Mer information om det giltiga innehåll som kan skickas till den här konstruktorn finns i Giltigt innehåll för XElement- och XDocument-objekt.

Det finns en implicit konvertering från sträng till XName. Typisk användning av den här konstruktorn är att ange en sträng som parameter i stället för att skapa en ny XName.

När du skapar ett element i ett namnområde används vanligtvis additionsoperatorns överlagring med en XNamespace och en sträng för att skapa en XName. Mer information finns i Arbeta med XML-namnområden.

XElement(XElement)

Källa:
XElement.cs
Källa:
XElement.cs
Källa:
XElement.cs
Källa:
XElement.cs
Källa:
XElement.cs

Initierar en ny instans av XElement klassen från ett annat XElement objekt.

public:
 XElement(System::Xml::Linq::XElement ^ other);
public XElement(System.Xml.Linq.XElement other);
new System.Xml.Linq.XElement : System.Xml.Linq.XElement -> System.Xml.Linq.XElement
Public Sub New (other As XElement)

Parametrar

other
XElement

Ett XElement objekt att kopiera från.

Exempel

I följande exempel skapas ett XML-träd, en klon av trädet skapas och sedan anropas DeepEquals, som testar om de två XML-träden är lika med.

XElement xmlTree = new XElement("Root",
    new XAttribute("Att1", 1),
    new XElement("Child1", 1),
    new XElement("Child2", 2)
);

// Create a clone of the tree.
XElement treeClone = new XElement(xmlTree);

Console.WriteLine("xmlTree = treeClone: {0}", XNode.DeepEquals(xmlTree, treeClone));

// Do some work with xmlTree, perhaps pass it to other methods.
xmlTree.Add(new XElement("Child3", 3));

Console.WriteLine("xmlTree = treeClone: {0}", XNode.DeepEquals(xmlTree, treeClone));
Dim xmlTree As XElement = _
        <Root Att1="1">
            <Child1>1</Child1>
            <Child2>2</Child2>
        </Root>

' Create a clone of the tree.
Dim treeClone As XElement = New XElement(xmlTree)

Console.WriteLine("xmlTree = treeClone: {0}", XNode.DeepEquals(xmlTree, treeClone))

' Do some work with xmlTree, perhaps pass it to other methods.
xmlTree.Add(New XElement("Child3", 3))

Console.WriteLine("xmlTree = treeClone: {0}", XNode.DeepEquals(xmlTree, treeClone))

Det här exemplet genererar följande utdata:

xmlTree = treeClone: True
xmlTree = treeClone: False

Kommentarer

Den här konstruktorn gör en djup kopia av ett element.

Se även

Gäller för

XElement(XName)

Källa:
XElement.cs
Källa:
XElement.cs
Källa:
XElement.cs
Källa:
XElement.cs
Källa:
XElement.cs

Initierar en ny instans av XElement klassen med det angivna namnet.

public:
 XElement(System::Xml::Linq::XName ^ name);
public XElement(System.Xml.Linq.XName name);
new System.Xml.Linq.XElement : System.Xml.Linq.XName -> System.Xml.Linq.XElement
Public Sub New (name As XName)

Parametrar

name
XName

En XName som innehåller namnet på elementet.

Exempel

I följande exempel skapas ett element utan innehåll.

XElement el = new XElement("Root");
Console.WriteLine(el);
Dim el As XElement = <Root/>
Console.WriteLine(el)

Det här exemplet genererar följande utdata:

<Root />

I följande exempel skapas ett element i ett namnområde utan innehåll. Mer information finns i Arbeta med XML-namnområden.

XNamespace aw = "http://www.adventure-works.com";
XElement root = new XElement(aw + "Root");
Console.WriteLine(root);
Imports <xmlns="http://www.adventure-works.com">

Module Module1
    Sub Main()
        Dim root = <Root/>
        Console.WriteLine(root)
    End Sub
End Module

Det här exemplet genererar följande utdata:

<Root xmlns="http://www.adventure-works.com" />

Kommentarer

Den här konstruktorn skapar ett element utan innehåll och inga attribut.

Det finns en implicit konvertering från sträng till XName. Typisk användning av den här konstruktorn är att ange en sträng som parameter i stället för att skapa en ny XName. När du skapar ett element i ett namnområde används vanligtvis additionsoperatorns överlagring med en XNamespace och en sträng för att skapa en XName. Mer information finns i Arbeta med XML-namnområden.

Se även

Gäller för

XElement(XStreamingElement)

Källa:
XElement.cs
Källa:
XElement.cs
Källa:
XElement.cs
Källa:
XElement.cs
Källa:
XElement.cs

Initierar en ny instans av XElement klassen från ett XStreamingElement objekt.

public:
 XElement(System::Xml::Linq::XStreamingElement ^ other);
public XElement(System.Xml.Linq.XStreamingElement other);
new System.Xml.Linq.XElement : System.Xml.Linq.XStreamingElement -> System.Xml.Linq.XElement
Public Sub New (other As XStreamingElement)

Parametrar

other
XStreamingElement

En XStreamingElement som innehåller ovärdeerade frågor som ska itereras för innehållet i den här XElement.

Exempel

I följande exempel skapas ett XML-källträd och sedan skapas en XStreamingElement från en fråga i XML-källträdet. Sedan serialiseras XStreamingElement till -konsolen, ett nytt element läggs till i käll-XML-trädet och serialiseras XStreamingElement sedan igen. Du kan se att elementet som nyligen lagts till i käll-XML-trädet inte ingår i den första serialiseringen, utan ingår i det andra.

XElement src = new XElement("Root",
                   new XElement("Child1", 1),
                   new XElement("Child2", 2),
                   new XElement("Child3", 3)
               );
XStreamingElement xse = new XStreamingElement("NewRoot",
                            from el in src.Elements()
                            where (int)el >= 2
                            select el
                        );
Console.WriteLine(xse);
src.Add(new XElement("Child4", 4));
Console.WriteLine("----");
Console.WriteLine(xse);
Dim src As XElement = _
        <Root>
            <Child1>1</Child1>
            <Child2>2</Child2>
            <Child3>3</Child3>
        </Root>
Dim xse As XStreamingElement = New XStreamingElement("NewRoot", _
        From el In src.Elements() _
        Where (CInt(el) >= 2) _
        Select el _
)
Console.WriteLine(xse)
src.Add(New XElement("Child4", 4))
Console.WriteLine("----")
Console.WriteLine(xse)

Det här exemplet genererar följande utdata:

<NewRoot>
  <Child2>2</Child2>
  <Child3>3</Child3>
</NewRoot>
----
<NewRoot>
  <Child2>2</Child2>
  <Child3>3</Child3>
  <Child4>4</Child4>
</NewRoot>

Kommentarer

Konstruktorn itererar genom innehållet i den angivna XStreamingElementoch skapar ett element med dess innehåll.

Se även

Gäller för

XElement(XName, Object)

Källa:
XElement.cs
Källa:
XElement.cs
Källa:
XElement.cs
Källa:
XElement.cs
Källa:
XElement.cs

Initierar en ny instans av XElement klassen med det angivna namnet och innehållet.

public:
 XElement(System::Xml::Linq::XName ^ name, System::Object ^ content);
public XElement(System.Xml.Linq.XName name, object content);
public XElement(System.Xml.Linq.XName name, object? content);
new System.Xml.Linq.XElement : System.Xml.Linq.XName * obj -> System.Xml.Linq.XElement
Public Sub New (name As XName, content As Object)

Parametrar

name
XName

En XName som innehåller elementnamnet.

content
Object

Innehållet i elementet.

Exempel

I följande exempel skapas ett XML-träd. Innehållet i det nya elementet kommer från en LINQ-fråga.

XElement xmlTree1 = new XElement("Root",
    new XElement("Child1", 1),
    new XElement("Child2", 2),
    new XElement("Child3", 3),
    new XElement("Child4", 4),
    new XElement("Child5", 5),
    new XElement("Child6", 6)
);

XElement xmlTree2 = new XElement("Root",
    from el in xmlTree1.Elements()
    where((int)el >= 3 && (int)el <= 5)
    select el
);
Console.WriteLine(xmlTree2);
Dim xmlTree1 As XElement = _
        <Root>
            <Child1>1</Child1>
            <Child2>2</Child2>
            <Child3>3</Child3>
            <Child4>4</Child4>
            <Child5>5</Child5>
            <Child6>6</Child6>
        </Root>

Dim xmlTree2 As XElement = _
    <Root>
        <%= From el In xmlTree1.Elements() _
            Where el.Value >= 3 And el.Value <= 5 _
            Select el %>
    </Root>

Console.WriteLine(xmlTree2)

Det här exemplet genererar följande utdata:

<Root>
  <Child3>3</Child3>
  <Child4>4</Child4>
  <Child5>5</Child5>
</Root>

I följande exempel skapas ett XML-träd med en mängd olika typer av innehåll.

XElement root;

// String content:
root = new XElement("Root", "Some text");
Console.WriteLine(root);

// XElement object content:
root = new XElement("Root",
    new XElement("NewChild", "n")
);
Console.WriteLine(root);

// XAttribute object content:
root = new XElement("Root",
    new XAttribute("NewAttribute", "n")
);
Console.WriteLine(root);

// Double content:
double dbl = 12.345;
root = new XElement("Root", dbl);
Console.WriteLine(root);

// DateTime content:
DateTime dt = new DateTime(2006, 10, 6, 12, 30, 00);
root = new XElement("Root", dt);
Console.WriteLine(root);

// String array content:
// Any collection other than a collection of XElement or XAttribute objects
// are converted to strings. The strings are concatenated and added.
string[] stringArray = {
    "abc",
    "def",
    "ghi"
};
root = new XElement("Root", stringArray);
Console.WriteLine(root);

// XElement object array content:
XElement[] ellArray = {
    new XElement("NewChild1", 1),
    new XElement("NewChild2", 2),
    new XElement("NewChild3", 3)
};
root = new XElement("Root", ellArray);
Console.WriteLine(root);

// XAttribute object array content:
XAttribute[] attArray = {
    new XAttribute("NewAtt1", 1),
    new XAttribute("NewAtt2", 2),
    new XAttribute("NewAtt3", 3)
};
root = new XElement("Root", attArray);
Console.WriteLine(root);
Dim root As XElement

' String content:
root = <Root>Some text</Root>
Console.WriteLine(root)

' XElement object content:
root = <Root>
           <NewChild>n</NewChild>
       </Root>
Console.WriteLine(root)

' XAttribute object content:
root = <Root NewAttribute="n"/>
Console.WriteLine(root)

' Double content:
Dim dbl As Double = 12.345
root = <Root><%= dbl %></Root>
Console.WriteLine(root)

' DateTime content:
Dim dt As DateTime = New DateTime(2006, 10, 6, 12, 30, 0)
root = <Root><%= dt %></Root>
Console.WriteLine(root)

' String array content:
' Any collection other than a collection of XElement or XAttribute objects
' are converted to strings. The strings are concatenated and added.

Dim stringArray As String() = { _
    "abc", _
    "def", _
    "ghi" _
}
root = <Root><%= stringArray %></Root>
Console.WriteLine(root)

' XElement object array content:
Dim ellArray As XElement() = { _
    <NewChild1>1</NewChild1>, _
    <NewChild2>2</NewChild2>, _
    <NewChild3>3</NewChild3> _
}

root = <Root><%= ellArray %></Root>
Console.WriteLine(root)

' XAttribute object array content
Dim attArray As XAttribute() = { _
    New XAttribute("NewAtt1", 1), _
    New XAttribute("NewAtt2", 2), _
    New XAttribute("NewAtt3", 3) _
}
root = <Root><%= attArray %></Root>
Console.WriteLine(root)

Det här exemplet genererar följande utdata:

<Root>Some text</Root>
<Root>
  <NewChild>n</NewChild>
</Root>
<Root NewAttribute="n" />
<Root>12.345</Root>
<Root>2006-10-06T12:30:00</Root>
<Root>abcdefghi</Root>
<Root>
  <NewChild1>1</NewChild1>
  <NewChild2>2</NewChild2>
  <NewChild3>3</NewChild3>
</Root>
<Root NewAtt1="1" NewAtt2="2" NewAtt3="3" />

I följande exempel skapas ett XML-träd i ett namnområde.

// Create an XML tree in a namespace.
XNamespace aw = "http://www.adventure-works.com";
XElement root = new XElement(aw + "Root",
    new XElement(aw + "Child", "child content")
);
Console.WriteLine(root);
' Create an XML tree in a namespace.
Dim root As XElement = _
    <Root xmlns='http://www.adventure-works.com'>
        <Child>child content</Child>
    </Root>
Console.WriteLine(root)

Det här exemplet genererar följande utdata:

<Root xmlns="http://www.adventure-works.com">
  <Child>child content</Child>
</Root>

I följande exempel skapas ett XML-träd med kapslade namnområden.

// Create an XML tree with nested namespaces.
XNamespace aw = "http://www.adventure-works.com";
XNamespace fc = "www.fourthcoffee.com";
XDocument root = new XDocument(
    new XDeclaration("1.0", "utf-8", "yes"),
    new XElement(aw + "Root",
        new XElement(fc + "Child",
            new XElement(aw + "DifferentChild", "other content")
        )
    )
);
Console.WriteLine(root);
' Create an XML tree with nested namespaces.
Dim root As XDocument = _
    <?xml version='1.0'?>
    <Root xmlns='http://www.adventure-works.com'>
        <Child xmlns='www.fourthcoffee.com'>
        <DifferentChild xmlns='http://www.adventure-works.com'>other content</DifferentChild>
        </Child>
    </Root>
Console.WriteLine(root)

Det här exemplet genererar följande utdata:

<Root xmlns="http://www.adventure-works.com">
  <Child xmlns="www.fourthcoffee.com">
    <DifferentChild xmlns="http://www.adventure-works.com">other content</DifferentChild>
  </Child>
</Root>

Kommentarer

Den här konstruktorn skapar ett element med det angivna innehållet och attributen.

Det finns en implicit konvertering från sträng till XName. Typisk användning av den här konstruktorn är att ange en sträng som parameter i stället för att skapa en ny XName.

När du skapar ett element i ett namnområde används vanligtvis additionsoperatorns överlagring med en XNamespace och en sträng för att skapa en XName. Mer information finns i Arbeta med XML-namnområden.

Mer information om det giltiga innehåll som kan skickas till den här konstruktorn finns i Giltigt innehåll för XElement- och XDocument-objekt.

Se även

Gäller för

XElement(XName, Object[])

Källa:
XElement.cs
Källa:
XElement.cs
Källa:
XElement.cs
Källa:
XElement.cs
Källa:
XElement.cs

Initierar en ny instans av XElement klassen med det angivna namnet och innehållet.

public:
 XElement(System::Xml::Linq::XName ^ name, ... cli::array <System::Object ^> ^ content);
public XElement(System.Xml.Linq.XName name, params object[] content);
public XElement(System.Xml.Linq.XName name, params object?[] content);
new System.Xml.Linq.XElement : System.Xml.Linq.XName * obj[] -> System.Xml.Linq.XElement
Public Sub New (name As XName, ParamArray content As Object())

Parametrar

name
XName

En XName som innehåller elementnamnet.

content
Object[]

Det första innehållet i elementet.

Exempel

I följande exempel skapas ett XML-träd. Innehållet i det nya elementet kommer från en LINQ-fråga.

XElement xmlTree1 = new XElement("Root",
    new XElement("Child1", 1),
    new XElement("Child2", 2),
    new XElement("Child3", 3),
    new XElement("Child4", 4),
    new XElement("Child5", 5),
    new XElement("Child6", 6)
);

XElement xmlTree2 = new XElement("Root",
    from el in xmlTree1.Elements()
    where((int)el >= 3 && (int)el <= 5)
    select el
);
Console.WriteLine(xmlTree2);
Dim xmlTree1 As XElement = _
        <Root>
            <Child1>1</Child1>
            <Child2>2</Child2>
            <Child3>3</Child3>
            <Child4>4</Child4>
            <Child5>5</Child5>
            <Child6>6</Child6>
        </Root>

Dim xmlTree2 As XElement = _
    <Root>
        <%= From el In xmlTree1.Elements() _
            Where el.Value >= 3 And el.Value <= 5 _
            Select el %>
    </Root>

Console.WriteLine(xmlTree2)

Det här exemplet genererar följande utdata:

<Root>
  <Child3>3</Child3>
  <Child4>4</Child4>
  <Child5>5</Child5>
</Root>

I följande exempel skapas ett XML-träd med en mängd olika typer av innehåll.

XElement root;

// String content:
root = new XElement("Root", "Some text");
Console.WriteLine(root);

// XElement object content:
root = new XElement("Root",
    new XElement("NewChild", "n")
);
Console.WriteLine(root);

// XAttribute object content:
root = new XElement("Root",
    new XAttribute("NewAttribute", "n")
);
Console.WriteLine(root);

// Double content:
double dbl = 12.345;
root = new XElement("Root", dbl);
Console.WriteLine(root);

// DateTime content:
DateTime dt = new DateTime(2006, 10, 6, 12, 30, 00);
root = new XElement("Root", dt);
Console.WriteLine(root);

// String array content:
// Any collection other than a collection of XElement or XAttribute objects
// are converted to strings. The strings are concatenated and added.
string[] stringArray = {
    "abc",
    "def",
    "ghi"
};
root = new XElement("Root", stringArray);
Console.WriteLine(root);

// XElement object array content:
XElement[] ellArray = {
    new XElement("NewChild1", 1),
    new XElement("NewChild2", 2),
    new XElement("NewChild3", 3)
};
root = new XElement("Root", ellArray);
Console.WriteLine(root);

// XAttribute object array content:
XAttribute[] attArray = {
    new XAttribute("NewAtt1", 1),
    new XAttribute("NewAtt2", 2),
    new XAttribute("NewAtt3", 3)
};
root = new XElement("Root", attArray);
Console.WriteLine(root);
Dim root As XElement

' String content:
root = <Root>Some text</Root>
Console.WriteLine(root)

' XElement object content:
root = <Root>
           <NewChild>n</NewChild>
       </Root>
Console.WriteLine(root)

' XAttribute object content:
root = <Root NewAttribute="n"/>
Console.WriteLine(root)

' Double content:
Dim dbl As Double = 12.345
root = <Root><%= dbl %></Root>
Console.WriteLine(root)

' DateTime content:
Dim dt As DateTime = New DateTime(2006, 10, 6, 12, 30, 0)
root = <Root><%= dt %></Root>
Console.WriteLine(root)

' String array content:
' Any collection other than a collection of XElement or XAttribute objects
' are converted to strings. The strings are concatenated and added.

Dim stringArray As String() = { _
    "abc", _
    "def", _
    "ghi" _
}
root = <Root><%= stringArray %></Root>
Console.WriteLine(root)

' XElement object array content:
Dim ellArray As XElement() = { _
    <NewChild1>1</NewChild1>, _
    <NewChild2>2</NewChild2>, _
    <NewChild3>3</NewChild3> _
}

root = <Root><%= ellArray %></Root>
Console.WriteLine(root)

' XAttribute object array content
Dim attArray As XAttribute() = { _
    New XAttribute("NewAtt1", 1), _
    New XAttribute("NewAtt2", 2), _
    New XAttribute("NewAtt3", 3) _
}
root = <Root><%= attArray %></Root>
Console.WriteLine(root)

Det här exemplet genererar följande utdata:

<Root>Some text</Root>
<Root>
  <NewChild>n</NewChild>
</Root>
<Root NewAttribute="n" />
<Root>12.345</Root>
<Root>2006-10-06T12:30:00</Root>
<Root>abcdefghi</Root>
<Root>
  <NewChild1>1</NewChild1>
  <NewChild2>2</NewChild2>
  <NewChild3>3</NewChild3>
</Root>
<Root NewAtt1="1" NewAtt2="2" NewAtt3="3" />

I följande exempel skapas ett XML-träd i ett namnområde.

// Create an XML tree in a namespace.
XNamespace aw = "http://www.adventure-works.com";
XElement root = new XElement(aw + "Root",
    new XElement(aw + "Child", "child content")
);
Console.WriteLine(root);
' Create an XML tree in a namespace.
Dim root As XElement = _
    <Root xmlns='http://www.adventure-works.com'>
        <Child>child content</Child>
    </Root>
Console.WriteLine(root)

Det här exemplet genererar följande utdata:

<Root xmlns="http://www.adventure-works.com">
  <Child>child content</Child>
</Root>

I följande exempel skapas ett XML-träd med kapslade namnområden.

// Create an XML tree with nested namespaces.
XNamespace aw = "http://www.adventure-works.com";
XNamespace fc = "www.fourthcoffee.com";
XElement root = new XElement(aw + "Root",
    new XElement(fc + "Child",
        new XElement(aw + "DifferentChild", "other content")
    )
);
Console.WriteLine(root);
' Create an XML tree with nested namespaces.
Dim root As XDocument = _
    <?xml version='1.0'?>
    <Root xmlns='http://www.adventure-works.com'>
        <Child xmlns='www.fourthcoffee.com'>
        <DifferentChild xmlns='http://www.adventure-works.com'>other content</DifferentChild>
        </Child>
    </Root>
Console.WriteLine(root)

Det här exemplet genererar följande utdata:

<Root xmlns="http://www.adventure-works.com">
  <Child xmlns="www.fourthcoffee.com">
    <DifferentChild xmlns="http://www.adventure-works.com">other content</DifferentChild>
  </Child>
</Root>

Kommentarer

Den här konstruktorn skapar ett element med det angivna innehållet och attributen.

Det finns en implicit konvertering från sträng till XName. Typisk användning av den här konstruktorn är att ange en sträng som parameter i stället för att skapa en ny XName.

När du skapar ett element i ett namnområde används vanligtvis additionsoperatorns överlagring med en XNamespace och en sträng för att skapa en XName. Mer information finns i Arbeta med XML-namnområden.

Mer information om det giltiga innehåll som kan skickas till den här konstruktorn finns i Giltigt innehåll för XElement- och XDocument-objekt.

Se även

Gäller för