Прочитать на английском

Поделиться через


XContainer.Element(XName) Метод

Определение

Получает первый (в порядке следования документа) дочерний элемент с заданным XName.

public System.Xml.Linq.XElement Element (System.Xml.Linq.XName name);
public System.Xml.Linq.XElement? Element (System.Xml.Linq.XName name);

Параметры

name
XName

Выражение XName для сопоставления.

Возвращаемое значение

XElement

XElement, который соответствует заданному XName или null.

Примеры

В следующем примере показано два использования этого метода. В одном случае метод находит элемент в srcTree. Во втором случае метод не находит элемент в дереве источника, в нее не добавляется xmlTreeни один элемент, и исключение не создается.

Обратите внимание, что в примере Visual Basic используется дочернее СВОЙСТВО XML. Также можно использовать Element метод непосредственно в Visual Basic.

XElement srcTree = new XElement("Root",  
    new XElement("Element1", 1),  
    new XElement("Element2", 2),  
    new XElement("Element3", 3),  
    new XElement("Element4", 4),  
    new XElement("Element5", 5)  
);  
XElement xmlTree = new XElement("Root",  
    new XElement("Child1", 1),  
    new XElement("Child2", 2),  
    new XElement("Child3", 3),  
    new XElement("Child4", 4),  
    new XElement("Child5", 5),  
    srcTree.Element("Element3"),  
    // Even though Element9 does not exist in srcTree, the following line  
    // will not throw an exception.  
    srcTree.Element("Element9")  
);  
Console.WriteLine(xmlTree);  

В этом примере выводятся следующие данные:

<Root>  
  <Child1>1</Child1>  
  <Child2>2</Child2>  
  <Child3>3</Child3>  
  <Child4>4</Child4>  
  <Child5>5</Child5>  
  <Element3>3</Element3>  
</Root>  

Ниже приведен тот же пример, но в этом случае XML находится в пространстве имен. Дополнительные сведения см. в статье "Работа с пространствами имен XML".

XNamespace aw = "http://www.adventure-works.com";  
XElement srcTree = new XElement(aw + "Root",  
    new XAttribute(XNamespace.Xmlns + "aw", "http://www.adventure-works.com"),  
    new XElement(aw + "Element1", 1),  
    new XElement(aw + "Element2", 2),  
    new XElement(aw + "Element3", 3),  
    new XElement(aw + "Element4", 4),  
    new XElement(aw + "Element5", 5)  
);  
XElement xmlTree = new XElement(aw + "Root",  
    new XAttribute(XNamespace.Xmlns + "aw", "http://www.adventure-works.com"),  
    new XElement(aw + "Child1", 1),  
    new XElement(aw + "Child2", 2),  
    new XElement(aw + "Child3", 3),  
    new XElement(aw + "Child4", 4),  
    new XElement(aw + "Child5", 5),  
    srcTree.Element(aw + "Element3"),  
    // Even though Element9 does not exist in srcTree, the following line  
    // will not throw an exception.  
    srcTree.Element(aw + "Element9")  
);  
Console.WriteLine(xmlTree);  

В этом примере выводятся следующие данные:

<aw:Root xmlns:aw="http://www.adventure-works.com">  
  <aw:Child1>1</aw:Child1>  
  <aw:Child2>2</aw:Child2>  
  <aw:Child3>3</aw:Child3>  
  <aw:Child4>4</aw:Child4>  
  <aw:Child5>5</aw:Child5>  
  <aw:Element3>3</aw:Element3>  
</aw:Root>  

Комментарии

Возвращает значение null , если элемент с указанным именем отсутствует.

Некоторые методы оси возвращают коллекции элементов или атрибутов. Этот метод возвращает только один элемент.

Этот метод возвращает значение null , если элемент с указанным именем не найден. Все методы, позволяющие создавать элементы (конструктор XElement, Addи т. д.) принимать null в качестве допустимого аргумента. Это позволяет использовать удобную идиому: этот метод можно вызвать как часть функционального построения, а элемент добавляется в xml-дерево, если и только если элемент существует в исходном дереве. В следующем примере показана идиома.

В отличие от Elementsэтого, этот метод не является методом оси. Он не использует отложенное выполнение; Он просто возвращает элемент при вызове.

Применяется к

См. также раздел