verwendetes Datenbanksystem: <XML>
Hallo,
ich möchte mit Linq die Projectdateien vom VS abfragen.
Mit geht es primär um die PropertyGroups.
Die XML - Struktur sieht so aus:
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<OutputPath>Wert</OutputPath>
</PropertyGroup>
Meine erste Abfrage sieht so aus:
var list = (from node in document.Elements().Elements()
where node.Name.LocalName == "PropertyGroup"
select new
{
Condition = node.Element("Condition")
}).ToList() ;
Es werden mir so auch alle Elemente vom Type PropertyGroup angegeben.
Doch ich dachte eigentlich, dass ich mit
document.Elements("Project").Elements("PropertyGroup")
Zugreifen könnte.
Allerdings ist die Name property des XElements immer mit dem Namespace versehen, bspw.
{{http://schemas.microsoft.com/developer/msbuild/2003}Project}
D.h. ich komme nicht mit "Project" an die entsprechenden Elemente.
Das gleiche Problem habe ich nun beim Zuweisen der Properties (hier testweise Condition).
Dort müsste ich nun entweder vollqualifiziert ran oder wie sonst?
Ich hoffe es ist deutlich wo mein Problem liegt, ansonsten muss ich nochmal nachlegen mit Infos.
Dank Euch.
Gruß
DevHB
Hi,
anscheinend muss man für den Zugriff auf die Name Property den Namespace mit einbauen:
XNamespace ns = XNamespace.Get("http://schemas.microsoft.com/developer/msbuild/2003");
.Elements(ns + "PropertyGroup")
Gruß
DevHB