Laden...

LinqXml: Problem mit "Name", VS project file analysieren

Erstellt von DevHB vor 13 Jahren Letzter Beitrag vor 13 Jahren 756 Views
D
DevHB Themenstarter:in
211 Beiträge seit 2006
vor 13 Jahren
LinqXml: Problem mit "Name", VS project file analysieren

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

D
DevHB Themenstarter:in
211 Beiträge seit 2006
vor 13 Jahren

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