Question

Comment puis-je écrire quelque chose dans le InnerText de mon fichier xml

Je suis capable de lire l'étiquette particualar du fichier comme ceci:

 protected void Page_Load(object sender, EventArgs e)
    {// this is to read from xml.
        if (!Page.IsPostBack)
        {
            XmlDocument xmlDoc = new XmlDocument();

            xmlDoc.Load(@"C:\configfolder\config.xml");

            XmlNodeList portNo = xmlDoc.GetElementsByTagName("AgentConfigRepository");
            foreach (XmlNode node in portNo)
            {
                XmlElement bookElement = (XmlElement)node;
                string no = bookElement.GetElementsByTagName("OVERRIDE_CONFIG_FILE_NAME")[0].InnerText;
                TextBox1.Text = no;
            }
        }
    }

Maintenant, je veux changer la valeur dans le InnerText OVERRIDE_CONFIG_FILE_NAME

est ainsi que mon fichier xml ressemble:

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<AgentConfigRepository>
  <SERVER_SHARE_SW_DIR_NAME val="singleVal">AgentSW</SERVER_SHARE_SW_DIR_NAME>
  <OVERRIDE_CONFIG_FILE_NAME val="singleVal">override_config.xml</OVERRIDE_CONFIG_FILE_NAME>
  <MAINTAIN_AGENT_SW_LEVEL val="singleVal">1.0</MAINTAIN_AGENT_SW_LEVEL>
  <MAINTAIN_AGENT_SW_PATCH_LEVEL val="singleVal">0</MAINTAIN_AGENT_SW_PATCH_LEVEL>
</AgentConfigRepository>

donc je veux changer override_config.xml à une autre valeur dans la zone de texte.

suggestions .. merci

Était-ce utile?

La solution

Si vous pouvez utiliser XDocument, il devient assez trivial:

XDocument xdoc = XDocument.Load(@"C:\configfolder\config.xml");
xdoc.Root.Element("OVERRIDE_CONFIG_FILE_NAME").SetValue("HelloThere");
xdoc.Save(@"C:\so2.xml");

Autres conseils

Malheureusement, ce n'est pas testé au moment (je ne suis pas dans un endroit pour le tester) mais de l'aspect de votre question que vous essayez de changer la innerText de l'élément que vous avez trouvé dans cette ligne:

bookElement.GetElementsByTagName("OVERRIDE_CONFIG_FILE_NAME")[0].InnerText;

Pour tout ce qui est dans votre zone de texte. En général, vous voulez une déclaration comme ceci:

bookElement.GetElementsByTagName("OVERRIDE_CONFIG_FILE_NAME")[0].InnerText = "new text"

Nouveau texte peut être la chaîne à partir d'une zone de texte dans votre application ou une autre variable ou juste hardcoded (comme dans cet exemple). Espérons que cela aide.

Vous pouvez simplement définir la InnerText comme toute autre propriété (comme Tim C a)

Quand vous faites cela, cependant, il ne définit que dans l'objet XmlDocument. Pour voir le changement dans le fichier, vous devez faire enregistrer les modifications dans le fichier:

bookElement.save (nom de fichier)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top