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.
Als u een query wilt schrijven op XML die zich in een naamruimte bevindt, moet u objecten met de juiste naamruimte gebruiken XName .
Voor C# is de meest voorkomende benadering het initialiseren van een XNamespace tekenreeks die de URI bevat en vervolgens de overbelasting van de operator voor optellen gebruiken om de naamruimte te combineren met de lokale naam.
Voor Visual Basic is de meest voorkomende benadering om een globale naamruimte te definiëren en vervolgens XML-letterlijke waarden en XML-eigenschappen te gebruiken die gebruikmaken van de globale naamruimte. U kunt een algemene standaardnaamruimte definiëren. In dat geval bevinden elementen in de LETTERLIJKE XML-naamruimte zich standaard in de naamruimte. U kunt ook een globale naamruimte definiëren met een voorvoegsel en vervolgens het voorvoegsel gebruiken zoals vereist in de letterlijke XML-waarden en in XML-eigenschappen. Net als bij andere vormen van XML bevinden kenmerken zich altijd in geen naamruimte.
In het eerste voorbeeld in dit artikel ziet u hoe u een XML-structuur maakt in een standaardnaamruimte. In de tweede sectie ziet u hoe u een XML-structuur maakt in een naamruimte met een voorvoegsel.
Voorbeeld: Een structuur maken in een standaardnaamruimte en elementen ophalen
In het volgende voorbeeld wordt een XML-structuur gemaakt die zich in een standaardnaamruimte bevindt en vervolgens een verzameling elementen ophaalt.
XNamespace aw = "http://www.adventure-works.com";
XElement root = XElement.Parse(
@"<Root xmlns='http://www.adventure-works.com'>
<Child>1</Child>
<Child>2</Child>
<Child>3</Child>
<AnotherChild>4</AnotherChild>
<AnotherChild>5</AnotherChild>
<AnotherChild>6</AnotherChild>
</Root>");
IEnumerable<XElement> c1 =
from el in root.Elements(aw + "Child")
select el;
foreach (XElement el in c1)
Console.WriteLine((int)el);
Imports <xmlns="http://www.adventure-works.com">
Module Module1
Sub Main()
Dim root As XElement = _
<Root>
<Child>1</Child>
<Child>2</Child>
<Child>3</Child>
<AnotherChild>4</AnotherChild>
<AnotherChild>5</AnotherChild>
<AnotherChild>6</AnotherChild>
</Root>
Dim c1 As IEnumerable(Of XElement) = _
From el In root.<Child> _
Select el
For Each el As XElement In c1
Console.WriteLine(el.Value)
Next
End Sub
End Module
In dit voorbeeld wordt de volgende uitvoer gegenereerd:
1
2
3
Voorbeeld: Een structuur maken in een naamruimte met een voorvoegsel en elementen ophalen
In C# schrijft u query's op dezelfde manier, ongeacht of u query's schrijft in een XML-structuur die gebruikmaakt van een naamruimte met een voorvoegsel of in een XML-structuur met een standaardnaamruimte.
In het volgende voorbeeld wordt een XML-structuur gemaakt die zich in een naamruimte met een voorvoegsel bevindt en vervolgens een verzameling elementen ophaalt.
XNamespace aw = "http://www.adventure-works.com";
XElement root = XElement.Parse(
@"<aw:Root xmlns:aw='http://www.adventure-works.com'>
<aw:Child>1</aw:Child>
<aw:Child>2</aw:Child>
<aw:Child>3</aw:Child>
<aw:AnotherChild>4</aw:AnotherChild>
<aw:AnotherChild>5</aw:AnotherChild>
<aw:AnotherChild>6</aw:AnotherChild>
</aw:Root>");
IEnumerable<XElement> c1 =
from el in root.Elements(aw + "Child")
select el;
foreach (XElement el in c1)
Console.WriteLine((int)el);
Imports <xmlns:aw="http://www.adventure-works.com">
Module Module1
Sub Main()
Dim root As XElement = _
<aw:Root>
<aw:Child>1</aw:Child>
<aw:Child>2</aw:Child>
<aw:Child>3</aw:Child>
<aw:AnotherChild>4</aw:AnotherChild>
<aw:AnotherChild>5</aw:AnotherChild>
<aw:AnotherChild>6</aw:AnotherChild>
</aw:Root>
Dim c1 As IEnumerable(Of XElement) = _
From el In root.<aw:Child> _
Select el
For Each el As XElement In c1
Console.WriteLine(CInt(el))
Next
End Sub
End Module
In dit voorbeeld wordt de volgende uitvoer gegenereerd:
1
2
3