XElement Konstruktory

Definice

Inicializuje novou instanci XElement třídy.

Přetížení

XElement(XElement)

Inicializuje novou instanci XElement třídy z jiného XElement objektu.

XElement(XName)

Inicializuje novou instanci XElement třídy se zadaným názvem.

XElement(XStreamingElement)

Inicializuje novou instanci XElement třídy z objektu XStreamingElement .

XElement(XName, Object)

Inicializuje novou instanci XElement třídy se zadaným názvem a obsahem.

XElement(XName, Object[])

Inicializuje novou instanci XElement třídy se zadaným názvem a obsahem.

Příklady

Následující příklad vytvoří strom XML. Obsah nového prvku pochází z dotazu LINQ.

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)  

Tento příklad vytvoří následující výstup:

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

Poznámky

Podrobnosti o platném obsahu, který lze předat do tohoto konstruktoru, naleznete v tématu Platný obsah XElement a XDocument Objects.

Existuje implicitní převod z řetězce na XName. Typické použití tohoto konstruktoru je zadat řetězec jako parametr místo vytvoření nového XName.

Při vytváření elementu v oboru názvů je typické použití operátoru sčítání s přetížením XNamespace a řetězcem k vytvoření XName. Další informace naleznete v tématu Práce s obory názvů XML.

XElement(XElement)

Inicializuje novou instanci XElement třídy z jiného XElement objektu.

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)

Parametry

other
XElement

Objekt XElement , ze který se má kopírovat.

Příklady

Následující příklad vytvoří strom XML, vytvoří klon stromu a potom zavolá DeepEquals, který testuje, zda jsou dva stromy XML stejné.

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))  

Tento příklad vytvoří následující výstup:

xmlTree = treeClone: True  
xmlTree = treeClone: False  

Poznámky

Tento konstruktor vytvoří hlubokou kopii elementu.

Viz také

Platí pro

XElement(XName)

Inicializuje novou instanci XElement třídy se zadaným názvem.

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)

Parametry

name
XName

Obsahuje XName název elementu.

Příklady

Následující příklad vytvoří prvek bez obsahu.

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

Tento příklad vytvoří následující výstup:

<Root />  

Následující příklad vytvoří prvek v oboru názvů bez obsahu. Další informace naleznete v tématu Práce s obory názvů XML.

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  

Tento příklad vytvoří následující výstup:

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

Poznámky

Tento konstruktor vytvoří prvek bez obsahu a žádné atributy.

Existuje implicitní převod z řetězce na XName. Typické použití tohoto konstruktoru je zadat řetězec jako parametr místo vytvoření nového XName. Při vytváření elementu v oboru názvů je typické použití operátoru sčítání s přetížením XNamespace a řetězcem k vytvoření XName. Další informace naleznete v tématu Práce s obory názvů XML.

Viz také

Platí pro

XElement(XStreamingElement)

Inicializuje novou instanci XElement třídy z objektu XStreamingElement .

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)

Parametry

other
XStreamingElement

Obsahuje XStreamingElement nehodnocené dotazy, které budou iterated za obsah tohoto XElementsouboru .

Příklady

Následující příklad vytvoří zdrojový strom XML a pak vytvoří XStreamingElement z dotazu na zdrojový strom XML. Potom serializuje do konzoly XStreamingElement , přidá nový prvek do zdrojového stromu XML a potom serializuje XStreamingElement znovu. Vidíte, že prvek nově přidaný do zdrojového stromu XML není součástí první serializace, ale je součástí druhé.

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)  

Tento příklad vytvoří následující výstup:

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

Poznámky

Tento konstruktor iteruje prostřednictvím obsahu zadaného XStreamingElementobjektu a vytvoří prvek s jeho obsahem.

Viz také

Platí pro

XElement(XName, Object)

Inicializuje novou instanci XElement třídy se zadaným názvem a obsahem.

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)

Parametry

name
XName

Název XName elementu obsahuje.

content
Object

Obsah prvku.

Příklady

Následující příklad vytvoří strom XML. Obsah nového prvku pochází z dotazu LINQ.

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)  

Tento příklad vytvoří následující výstup:

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

Následující příklad vytvoří strom XML s různými typy obsahu.

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)  

Tento příklad vytvoří následující výstup:

<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" />  

Následující příklad vytvoří strom XML v oboru názvů.

// 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)  

Tento příklad vytvoří následující výstup:

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

Následující příklad vytvoří strom XML s vnořenými obory názvů.

// 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)  

Tento příklad vytvoří následující výstup:

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

Poznámky

Tento konstruktor vytvoří prvek se zadaným obsahem a atributy.

Existuje implicitní převod z řetězce na XName. Typické použití tohoto konstruktoru je zadat řetězec jako parametr místo vytvoření nového XName.

Při vytváření elementu v oboru názvů je typické použití operátoru sčítání s přetížením XNamespace a řetězcem k vytvoření XName. Další informace naleznete v tématu Práce s obory názvů XML.

Podrobnosti o platném obsahu, který lze předat do tohoto konstruktoru, naleznete v tématu Platný obsah XElement a XDocument Objects.

Viz také

Platí pro

XElement(XName, Object[])

Inicializuje novou instanci XElement třídy se zadaným názvem a obsahem.

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())

Parametry

name
XName

Název XName elementu obsahuje.

content
Object[]

Počáteční obsah elementu.

Příklady

Následující příklad vytvoří strom XML. Obsah nového prvku pochází z dotazu LINQ.

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)  

Tento příklad vytvoří následující výstup:

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

Následující příklad vytvoří strom XML s různými typy obsahu.

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)  

Tento příklad vytvoří následující výstup:

<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" />  

Následující příklad vytvoří strom XML v oboru názvů.

// 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)  

Tento příklad vytvoří následující výstup:

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

Následující příklad vytvoří strom XML s vnořenými obory názvů.

// 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)  

Tento příklad vytvoří následující výstup:

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

Poznámky

Tento konstruktor vytvoří prvek se zadaným obsahem a atributy.

Existuje implicitní převod z řetězce na XName. Typické použití tohoto konstruktoru je zadat řetězec jako parametr místo vytvoření nového XName.

Při vytváření elementu v oboru názvů je typické použití operátoru sčítání s přetížením XNamespace a řetězcem k vytvoření XName. Další informace naleznete v tématu Práce s obory názvů XML.

Podrobnosti o platném obsahu, který lze předat do tohoto konstruktoru, naleznete v tématu Platný obsah XElement a XDocument Objects.

Viz také

Platí pro