J'ai une section de XML que j'essaie de retirer un nom de.
Le XML ressemble à ceci: J'ai besoin de retirer le nom de la ligne p> Je peux obtenir une liste de tous les nœuds et lire l'étiquette href, mais rien ci-dessous p>
3 Réponses :
Si vous voulez seulement obtenir la valeur de nom em> l'attribut de l'élément str em> où la valeur de val em> attribute est "Spread Pression" , alors voici la solution: system.xml.linq est l'espace de noms pour xdocument p> p>
Utilisation de XML LINQ Vous pouvez obtenir un dictionnaire de tous les éléments nommés
Vous pouvez appliquer une expression Exemple complet P> xpath code> sur le
xmlnode code> via la méthode
SelectSingLenode code>.
var data = OpenPLCfile(ofd.FileName, "pointconfig.xml");
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(data);
string xpath = "PointsConfiguration/SoftwarePoints/point";
var nodes = xmlDoc.SelectNodes(xpath);
foreach (XmlNode childrenNode in nodes)
{
string pointID = childrenNode.Attributes["href"].Value;
Console.WriteLine(pointID)
XmlNode nameNode = childrenNode.SelectSingleNode("obj/str[@name='name']/@val");
string name = nameNode.Value;
Console.WriteLine(name);
}
Fonctionne parfaite, merci!