J'ai trouvé des réponses à la recherche de nœuds XML à l'aide de LINQ, mais je suis limité à C # avec .NET 2.
Je souhaite ouvrir un seul fichier XML (~ 50 Ko, tout le texte simple) et rechercher tous les nœuds <Tool>
avec l'attribut name
ayant une valeur spécifique.
Il semble que XmlDocument.SelectNodes()
pourrait être ce que je recherche, mais je ne connais pas XPath. Est-ce la bonne façon et si oui, à quoi ressemblerait le code?
Vous pouvez utiliser XPath dans XmlDocument.SelectNodes tels que: SelectNodes("//ElementName[@AttributeName='AttributeValue']")
Échantillon Xml:
<root>
<element name="value1" />
<element name="value2" />
<element name="value1" />
</root>
Échantillon C #:
XmlDocument xDoc = new XmlDocument();
// Load Xml
XmlNodeList nodes = xDoc.SelectNodes("//element[@name='value1']");
// nodes.Count == 2
Ici vous pouvez trouver quelques exemples XPath supplémentaires
pense que tu pourrais faire quelque chose comme ça (bon, rustique, mais tu as l'idée) en utilisant GetElementsByTagName
var myDocument = new XmlDocument();
myDocument.Load(<pathToYourFile>);
var nodes = myDocument.GetElementsByTagName("Tool");
var resultNodes = new List<XmlNode>();
foreach (XmlNode node in nodes)
{
if (node.Attributes != null && node.Attributes["name"] != null && node.Attributes["name"].Value == "asdf")
resultNodes.Add(node);
}