XAttribute Конструкторы

Определение

Инициализирует новый экземпляр класса XAttribute.

Перегрузки

Имя Описание
XAttribute(XAttribute)

Инициализирует новый экземпляр класса из другого XAttributeXAttribute объекта.

XAttribute(XName, Object)

Инициализирует новый экземпляр класса из указанного XAttribute имени и значения.

XAttribute(XAttribute)

Исходный код:
XAttribute.cs
Исходный код:
XAttribute.cs
Исходный код:
XAttribute.cs
Исходный код:
XAttribute.cs
Исходный код:
XAttribute.cs

Инициализирует новый экземпляр класса из другого XAttributeXAttribute объекта.

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

Параметры

other
XAttribute

Объект XAttribute для копирования из.

Исключения

Параметр other имеет значение null.

Примеры

В этом примере показано, что создание глубокой копии XML-дерева создает копию, а не клонирование атрибута в дереве.

XElement root1 = XElement.Parse("<Root Att1='abc' />");
// Make a deep copy.
XElement root2 = new XElement(root1);
if (root1.Attribute("Att1") == root2.Attribute("Att1"))
    Console.WriteLine("This will not be printed");
else
    Console.WriteLine("Creating a deep copy created a new attribute from the original.");
Dim root1 As XElement = <Root Att1='abc'/>
' Make a deep copy.
Dim root2 As XElement = New XElement(root1)
If root1.Attribute("Att1") Is root2.Attribute("Att1") Then
    Console.WriteLine("This will not be printed")
Else
    Console.WriteLine("Creating a deep copy created a new attribute from the original.")
End If

В примере получается следующий вывод.

Creating a deep copy created a new attribute from the original.

Комментарии

Этот конструктор в основном используется внутренне при создании глубокой копии дерева XML.

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

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

XAttribute(XName, Object)

Исходный код:
XAttribute.cs
Исходный код:
XAttribute.cs
Исходный код:
XAttribute.cs
Исходный код:
XAttribute.cs
Исходный код:
XAttribute.cs

Инициализирует новый экземпляр класса из указанного XAttribute имени и значения.

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

Параметры

name
XName

Атрибут XName .

value
Object

Значение Object атрибута.

Исключения

Значение name или value параметр null.

Примеры

В следующем примере этот конструктор используется для создания атрибутов. Он передает строки в качестве первого аргумента конструктору XAttribute , которые затем неявно преобразуются в XName объекты. Атрибуты добавляются в элемент.

XElement root;

double dbl = 12.345;
XAttribute[] attArray = {
    new XAttribute("Att4", 1),
    new XAttribute("Att5", 2),
    new XAttribute("Att6", 3)
};
DateTime dt = new DateTime(2006, 10, 6, 12, 30, 00);

// string content
root = new XElement("Root",
    new XAttribute("Att1", "Some text"),

    // double content
    new XAttribute("Att2", dbl),

    // DateTime content
    new XAttribute("Att3", dt),

    // XAttribute array content
    attArray
);

Console.WriteLine(root);
Dim dbl As Double = 12.345
Dim attArray As XAttribute() = { _
    New XAttribute("Att4", 1), _
    New XAttribute("Att5", 2), _
    New XAttribute("Att6", 3) _
}
Dim dt As DateTime = New DateTime(2006, 10, 6, 12, 30, 0)
Dim root As XElement = <Root Att1="Some text"
                           Att2=<%= dbl %>
                           Att3=<%= dt %>
                           <%= attArray %>
                       />
Console.WriteLine(root)

В примере получается следующий вывод.

<Root Att1="Some text" Att2="12.345" Att3="2006-10-06T12:30:00" Att4="1" Att5="2" Att6="3" />

Комментарии

Существует неявное преобразование из строки XNameв . Обычное использование этого конструктора заключается в том, чтобы указать строку в качестве первого параметра вместо создания нового XName, как показано ниже.

XElement root = new XElement("Root",
    new XAttribute("AnAttributeName", "Content")
);

Вы также можете использовать перегрузку оператора добавления с XNamespace строкой и строкой для создания следующего XNameтипа:

XNamespace aw = "http://www.adventure-works.com";
XElement root = new XElement(aw + "Root",
    new XAttribute(aw + "AnAttributeName", "Content")
);

Дополнительные сведения см. в статье "Работа с пространствами имен XML".

Эти же подходы будут работать для Visual Basic, однако XML-литералы обеспечивают лучший подход к созданию деревьев XML.

Параметр value может быть String, , doublefloat, decimal, bool, DateTimeили TimeSpan. Если значение равно DateTime или TimeSpanзначение атрибута отформатировано правильно в соответствии с спецификациями W3C.

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

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