hur ändrar jag värden i en xml fil? Jag har skrivit en lite funktion som ersätter värden anligt ett XPath-uttryck: jag får följande fel: För XmlElement måste du använda InnerText eller InnerXml. ändra värden i xml
min xml fil ser ut så här:
<?xml version="1.0" encoding="utf-8" ?>
<settings>
<language>
ensw
</language>
</settings>
Hur gör jag för att ändra värde ensw till swen i C#?
Sv: ändra värden i xml
private bool ReplaceValues(XmlDocument xmlDoc, string xpathexpression, string newvalue)
{
XmlNodeList nodes = xmlDoc.SelectNodes(xpathexpression);
foreach(XmlNode node in nodes)
node.Value = newvalue;
return nodes.Count > 0;
}
Så du borde kunna göra det genom att först ladda in XML:en (jag lade den i en fil som heter c:\temp\swen.xml) i ett XmlDocument och sedan anropa ovanstående rutin:
using System;
using System.Xml;
using System.Xml.XPath;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"C:\TEMP\swen.xml");
String newValue = "swen";
ReplaceValues(xmlDoc, "/settings/language", newValue);
Ett tips är att använda gratisprogrammet VisualXPath (googla för att hitta det) för att skriva XPath-uttryck.
/Andreas
Sv:ändra värden i xml
<cdoe asp.net>
An unhandled exception of type 'System.InvalidOperationException' occurred in system.xml.dll
Additional information: Cannot set a value on node type: Element.
</code>Sv: ändra värden i xml
node.InnerText = newvalue;