J'ai trouvé quelques exemples à ce sujet. Certains des exemples gived une méthode pour modifier l'attribut avec SelectNodes()
ou SelectSingleNode()
, et d'autres gived la méthode pour modifier l'attribut avec someElement.SetAttribute("attribute-name", "new value");
Modification du contenu XML existant en C#
Mais je ne comprends toujours pas que la façon de construire la relation si je seulement XpathNodeItterator it
?
Je Supposé défini comme ci-dessous,
System.Xml.XPath.XPathDocument doc = new XPathDocument(xmlFile);
System.Xml.XPath.XPathNavigator nav = doc.CreateNavigator();
System.Xml.XPath.XPathNodeIterator it;
it = nav.Select("/Equipment/Items/SubItmes");
while (it.MoveNext())
{
name = it.Current.GetAttribute("name ", it.Current.NamespaceURI);
int vidFromXML = int.Parse(it.Current.GetAttribute("vid", it.Current.NamespaceURI));
if (vidFromXML = vid)
{
// How can I find the relation between it and element and node? I want to modify name attribute value.
}
}
Y at-il une méthode comme it.setAttribute(name, "newValue")
?
Merci pour vos commentaires . J'ai étudié le tutoriel MSDN. J'ai trouvé que la méthode de 'SetValue' était utilisée pour mettre à jour la valeur de l'élément, pas la valeur de l'attribut. Peut essayé mais échoué. Je dois trouver un moyen de mettre à jour la valeur de l'attribut. –
J'ai trouvé votre mise à jour de détail maintenant. Introduit 'it.MoveToAttribute()'. Je vais l'essayer maintenant. Je vous remercie. –
Il n'y a pas de 'var' dans .NET 2.0. Je ne peux pas utiliser 'int.Parse (name)' quand je passe une valeur de type chaîne à 'name'. Jeter ** La chaîne d'entrée n'était pas dans un format correct. **. Comment puis-je le réparer? –