Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel wordt uitgelegd hoe u één kenmerk van een element ophaalt, op basis van de kenmerknaam. Dit is handig voor het schrijven van query-expressies waar u een element met een bepaald kenmerk wilt zoeken.
De Attribute methode van de XElement klasse retourneert de XAttribute met de opgegeven naam.
Voorbeeld: kenmerkwaarden ophalen, op basis van de element- en kenmerknamen
In het volgende voorbeeld wordt de methode gebruikt om een element met de XElement naam PhoneNumberste maken. Vervolgens worden alle onderliggende elementen met de naam gevonden Phone en wordt voor elk element de Attribute methode gebruikt om de waarde van het kenmerk met de naam typeop te halen en uit te voeren:
XElement cust = new XElement("PhoneNumbers",
new XElement("Phone",
new XAttribute("type", "home"),
"555-555-5555"),
new XElement("Phone",
new XAttribute("type", "work"),
"555-555-6666")
);
IEnumerable<XElement> elList =
from el in cust.Descendants("Phone")
select el;
foreach (XElement el in elList)
Console.WriteLine((string)el.Attribute("type"));
Dim cust As XElement = <PhoneNumbers>
<Phone type="home">555-555-5555</Phone>
<Phone type="work">555-555-6666</Phone>
</PhoneNumbers>
Dim elList = From el In cust...<Phone>
For Each e As XElement In elList
Console.WriteLine(e.@type)
Next
In dit voorbeeld wordt de volgende uitvoer gegenereerd:
home
work
Voorbeeld: Een kenmerkwaarde ophalen met een cast
U kunt de waarde van een kenmerk ophalen door het te casten, net zoals bij XElement objecten. In het volgende voorbeeld ziet u dit:
XElement cust = new XElement("PhoneNumbers",
new XElement("Phone",
new XAttribute("type", "home"),
"555-555-5555"),
new XElement("Phone",
new XAttribute("type", "work"),
"555-555-6666")
);
IEnumerable<XElement> elList =
from el in cust.Descendants("Phone")
select el;
foreach (XElement el in elList)
Console.WriteLine((string)el.Attribute("type"));
Dim cust As XElement = <PhoneNumbers>
<Phone type="home">555-555-5555</Phone>
<Phone type="work">555-555-6666</Phone>
</PhoneNumbers>
Dim elList As IEnumerable(Of XElement) = _
From el In cust...<Phone> _
Select el
For Each el As XElement In elList
Console.WriteLine(el.@type)
Next
In dit voorbeeld wordt de volgende uitvoer gegenereerd:
home
work
LINQ naar XML biedt expliciete cast-operators voor de XAttribute klasse aan string, bool, , bool?, uint?TimeSpanTimeSpan?floatlonguintlong?int?ulongintulong?float?DateTimedecimal?DateTime?double?decimaldoubleen . GUIDGUID?
Voorbeeld: Cast voor een kenmerk in een naamruimte
In het volgende voorbeeld ziet u dezelfde code voor een kenmerk in een naamruimte. Zie het overzicht van naamruimten voor meer informatie.
XNamespace aw = "http://www.adventure-works.com";
XElement cust = new XElement(aw + "PhoneNumbers",
new XElement(aw + "Phone",
new XAttribute(aw + "type", "home"),
"555-555-5555"),
new XElement(aw + "Phone",
new XAttribute(aw + "type", "work"),
"555-555-6666")
);
IEnumerable<XElement> elList =
from el in cust.Descendants(aw + "Phone")
select el;
foreach (XElement el in elList)
Console.WriteLine((string)el.Attribute(aw + "type"));
Imports <xmlns:aw="http://www.adventure-works.com">
Module Module1
Sub Main()
Dim cust As XElement = _
<aw:PhoneNumbers>
<aw:Phone aw:type="home">555-555-5555</aw:Phone>
<aw:Phone aw:type="work">555-555-6666</aw:Phone>
</aw:PhoneNumbers>
Dim elList As IEnumerable(Of XElement) = _
From el In cust...<aw:Phone> _
Select el
For Each el As XElement In elList
Console.WriteLine(el.@aw:type)
Next
End Sub
End Module
In dit voorbeeld wordt de volgende uitvoer gegenereerd:
home
work