Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Attribut är namn/värde-par som är associerade med ett element. Klassen XAttribute representerar XML-attribut.
Att arbeta med attribut i LINQ till XML liknar att arbeta med element. Deras konstruktorer är likadana. De metoder som du använder för att hämta samlingar av dem liknar dem. Ett LINQ-frågeuttryck för en samling attribut liknar ett LINQ-frågeuttryck för en samling element.
Ordningen i vilken attribut lades till i ett element bevaras. När du itererar genom attributen ser du dem i samma ordning som de lades till.
XAttribute-konstruktorn
Följande konstruktor för XAttribute klassen är den som du oftast använder:
| Konstruktor | Beskrivning |
|---|---|
XAttribute(XName name, object content) |
Skapar ett XAttribute objekt. Argumentet name anger namnet på attributet. content Anger attributets innehåll. |
Exempel: Skapa ett element med ett attribut
I följande exempel visas den vanliga uppgiften att skapa ett element som innehåller ett attribut.
XElement phone = new XElement("Phone",
new XAttribute("Type", "Home"),
"555-555-5555");
Console.WriteLine(phone);
Dim phone As XElement = <Phone Type="Home">555-555-5555</Phone>
Console.WriteLine(phone)
Det här exemplet genererar följande utdata:
<Phone Type="Home">555-555-5555</Phone>
Exempel: Funktionell konstruktion av attribut
Du kan skapa XAttribute objekt i linje med konstruktionen av XElement objekt, som du ser i följande exempel:
XElement c = new XElement("Customers",
new XElement("Customer",
new XElement("Name", "John Doe"),
new XElement("PhoneNumbers",
new XElement("Phone",
new XAttribute("type", "home"),
"555-555-5555"),
new XElement("Phone",
new XAttribute("type", "work"),
"666-666-6666")
)
)
);
Console.WriteLine(c);
Dim c As XElement = _
<Customers>
<Customer>
<Name>John Doe</Name>
<PhoneNumbers>
<Phone type="home">555-555-5555</Phone>
<Phone type="work">666-666-6666</Phone>
</PhoneNumbers>
</Customer>
</Customers>
Console.WriteLine(c)
Det här exemplet genererar följande utdata:
<Customers>
<Customer>
<Name>John Doe</Name>
<PhoneNumbers>
<Phone type="home">555-555-5555</Phone>
<Phone type="work">666-666-6666</Phone>
</PhoneNumbers>
</Customer>
</Customers>
Attribut är inte noder
Det finns vissa skillnader mellan attribut och element. XAttribute objekt är inte noder i XML-trädet. De är namn/värde-par som är associerade med ett XML-element. Till skillnad från dokumentobjektmodellen (DOM) återspeglar detta xml-strukturen närmare. Även om XAttribute objekt faktiskt inte är noder i XML-trädet, liknar arbetet med XAttribute objekt att arbeta med XElement objekt.
Den här skillnaden är främst viktig endast för utvecklare som skriver kod som fungerar med XML-träd på nodnivå. Många utvecklare kommer inte att bry sig om den här skillnaden.