Vorgehensweise: Schreiben von Abfragen für XML in Namespaces (C#)How to: Write Queries on XML in Namespaces (C#)

Wenn Sie eine Abfrage für XML in einem Namespace schreiben möchten, müssen Sie XName-Objekte verwenden, die den richtigen Namespace enthalten.To write a query on XML that is in a namespace, you must use XName objects that have the correct namespace.

In C# besteht der am häufigsten verwendete Ansatz darin, einen XNamespace mit einer Zeichenfolge zu initialisieren, die den URI enthält, und dann mithilfe der Additionsoperatorüberladung den Namespace mit dem lokalen Namen zu kombinieren.For C#, the most common approach is to initialize an XNamespace using a string that contains the URI, then use the addition operator overload to combine the namespace with the local name.

Die erste Gruppe der Beispiele in diesem Thema zeigt,wie Sie eine XML-Struktur in einem Standardnamespace erstellen.The first set of examples in this topic shows how to create an XML tree in a default namespace. Die zweite Gruppe der Beispiele zeigt, wie Sie eine XML-Struktur in einem Namespace mit einem Präfix erstellen.The second set shows how to create an XML tree in a namespace with a prefix.

BeispielExample

Das folgende Beispiel erstellt eine XML-Struktur, die sich in einem Standardnamespace befindet.The following example creates an XML tree that is in a default namespace. Anschließend ruft das Beispiel eine Auflistung der Elemente ab.It then retrieves a collection of elements.

XNamespace aw = "http://www.adventure-works.com";  
XElement root = XElement.Parse(  
@"<Root xmlns='http://www.adventure-works.com'>  
    <Child>1</Child>  
    <Child>2</Child>  
    <Child>3</Child>  
    <AnotherChild>4</AnotherChild>  
    <AnotherChild>5</AnotherChild>  
    <AnotherChild>6</AnotherChild>  
</Root>");  
IEnumerable<XElement> c1 =  
    from el in root.Elements(aw + "Child")  
    select el;  
foreach (XElement el in c1)  
    Console.WriteLine((int)el);  

Dieses Beispiel erzeugt die folgende Ausgabe:This example produces the following output:

1  
2  
3  

BeispielExample

In C# schreiben Sie Abfragen auf die gleiche Weise. Dies gilt unabhängig davon, ob Sie Abfragen für eine XML-Struktur schreiben, die einen Namespace mit einem Präfix verwendet, oder für eine XML-Struktur mit einem Standardnamespace.In C#, you write queries in the same way regardless of whether you are writing queries on an XML tree that uses a namespace with a prefix or on an XML tree with a default namespace.

Das folgende Beispiel erstellt eine XML-Struktur, die sich in einem Namespace mit einem Präfix befindet.The following example creates an XML tree that is in a namespace with a prefix. Anschließend ruft das Beispiel eine Auflistung der Elemente ab.It then retrieves a collection of elements.

XNamespace aw = "http://www.adventure-works.com";  
XElement root = XElement.Parse(  
@"<aw:Root xmlns:aw='http://www.adventure-works.com'>  
    <aw:Child>1</aw:Child>  
    <aw:Child>2</aw:Child>  
    <aw:Child>3</aw:Child>  
    <aw:AnotherChild>4</aw:AnotherChild>  
    <aw:AnotherChild>5</aw:AnotherChild>  
    <aw:AnotherChild>6</aw:AnotherChild>  
</aw:Root>");  
IEnumerable<XElement> c1 =  
    from el in root.Elements(aw + "Child")  
    select el;  
foreach (XElement el in c1)  
    Console.WriteLine((int)el);  

Dieses Beispiel erzeugt die folgende Ausgabe:This example produces the following output:

1  
2  
3  

Siehe auchSee Also

Working with XML Namespaces (C#) (Arbeiten mit XML-Namespaces (C#))Working with XML Namespaces (C#)