12
votes

Xpath et * .csproj

Je suis certes manquant quelques détails importants ici. Je ne peux tout simplement pas faire fonctionner XPath de .NET avec des fichiers de projet Visual Studio.

chargons un document XML: p> xxx pré>

exécute ma requête: p>

var nodes = doc.SelectNodes("//*/@Include");
Console.WriteLine(nodes.Count); // found some


1 commentaires

Qu'en est-il de var nœuds = doc.SelectNodes ("// * / itemgroup"); Je suis dans Mac OS X maintenant ne peut donc pas vérifier.


3 Réponses :


13
votes

Regardez l'espace de noms root; Vous devrez inclure un gestionnaire de points XML-NAMPACE et utiliser des requêtes telles que "// x: itemgroup", où "x" est votre alias désigné pour l'espace de noms root. Et transmettre le gestionnaire dans la requête. Par exemple: xxx


2 commentaires

Ajouter un espace de noms a fait le tour. Dommage que l'on ne peut pas accepter deux réponses pour une question :-)


@Catbert: Vous pouvez inverser votre réponse actuellement acceptée (ce qui est faux) et accepter la réponse correcte (@ Marc-Gravell). Non seulement vous pouvez, mais vous devrait le faire, car sinon certaines personnes penseront que la réponse erronée / acceptée est correcte.



16
votes

Vous devez probablement ajouter une référence à l'espace de noms http://schemas.microsoft.com/developer/msbuild/2003 .

J'ai eu un problème similaire, j'ai écrit à ce sujet < Un href = "http://roundedcorners.wordpress.com/2009/12/23/net-xpath-queries-on-xml-with-a-namespace/" rel = "noreferrer"> ici . Faites quelque chose comme ceci: xxx


1 commentaires

Oui, j'ai raté l'alias dans le XPath



5
votes

J'ai posté une version LINQ / XML sur:

http://granadacoder.wordpress.com/2012/10/11/how-a-find-references-in-ac-project-file -csproj-with-linq-xml /

Mais voici le gist de celui-ci. Cela peut ne pas être 100% parfait ...... mais cela montre l'idée.

Je pose le code ici, puisque j'ai trouvé cela (original) lors de la recherche d'une réponse. Ensuite, j'ai marre de chercher et écrit le mien. xxx


2 commentaires

Pas 100% parfait? Ça me convenait bien mais quels seraient les pièges si ça ne me dérange pas que je demande après 2 ans


Je ne sais pas ce qu'il fait de références de GAC, c'est le seul inconnu, car je fais rarement des références de GAC en dehors du cadre principal. C'est à peu près ça. J'utilise toujours le script quand j'ai besoin d'un "rapport de référence" de pauvres homme ...