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


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

Определение

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

Перегрузки

XAttribute(XAttribute)

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

XAttribute(XName, Object)

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

XAttribute(XAttribute)

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

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 из указанного имени и значения.

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 или параметра valuenull.

Примеры

В следующем примере этот конструктор используется для создания атрибутов. Он передает строки в качестве первого аргумента конструктору 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 может иметь значение aString, , double, float, decimal, boolили DateTimeTimeSpan. Если значение равно DateTime или TimeSpan, значение атрибута правильно отформатировано в соответствии со спецификациями W3C.

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

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