mit Xin-Abfrage für einen Knoten im namespace
ich versuche, ziehen Sie einen Knoten aus einem csproj-Datei, die so aussieht wie diese, aber kann nicht ankommen es zu wirken - vermutlich, weil der namespace-Deklaration.
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
<PropertyGroup>
<RegisterForComInterop>true</RegisterForComInterop>
Dieser scheitert kläglich:
XDocument cpo = XDocument.Load(file);
XmlNamespaceManager nsm = new XmlNamespaceManager(new NameTable());
nsm.AddNamespace("x", "http://schemas.microsoft.com/developer/msbuild/200");
IEnumerable<XElement> list3 = cpo.XPathSelectElements("//x:RegisterForComInterop[.='true']", nsm);
Jemand irgendwelche Ideen, bitte?
Dank.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wollen Sie wirklich verwenden von XPath für diese? Es ist wirklich einfach zu verwenden namespaces, die innerhalb von LINQ to XML:
oder wenn Sie absolut davon überzeugt, dass jeder RegisterForComInterop haben einen entsprechenden booleschen Wert, den Sie verwenden können, die explicit
XElement -
bool
conversion:Persönlich würde ich in der Regel diesen Weg gehen, anstatt XPath besonders wenn namespaces eingebunden werden.
.Where(x => bool.Parse(x.Value))
da sind wir 100% erwartet eine boolean-Zeichenfolge (oder was wir erwarten, und die Ausnahme..).bool
welches weiß über XML. Wird Bearbeiten.