Toon posts:

[C#] XML attibute value veranderen is toch niet zo moeilijk?

Pagina: 1
Acties:

Verwijderd

Topicstarter
XML, waar moet ik beginnen.
Heb het hele internet afgestruind om hier uit te komen, en al lijkt het een simpele opdracht, ik kom er toch niet uit.

De XML file.
XML:
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="txtServer.Text" value="server" />
    <add key="txtTable.Text" value="table" />
    <add key="txtUserName.Text" value="username" />
    <add key="txtPassWord.Text" value="pass" />
    <add key="txtStoredProcedureName.Text" value="sp" />
  </appSettings>
</configuration>


Ik wil gewoon de value van bij txtServer.Text aanapssen.
Ben al bezig geweest met XmlTextWriter, die alleen nieuwe XML bestanden kan maken, met TextReader die niet kan schrijven, en nu heb ik XmlDocument, maar die doet alleen innertext en innerxml ........ 8)7 8)7 8)7

C#:
1
2
3
4
XmlDocument XD = new XmlDocument();
            XD.Load("Config.xml");
            
            XmlNodeReader selNode = XD.SelectSingleNode("//BBB[@key='txtServer.Text']");


Een simpele tutorial om dit te doen ben ik nog niet tegen gekomen ..... :? :?

[ Voor 28% gewijzigd door Verwijderd op 16-09-2004 21:50 . Reden: [/code] vergeten ]


  • J27
  • Registratie: Januari 2003
  • Laatst online: 13:57

J27

Ik had dit probleem ook een tijdje terug en geloof dat het niet de bedoeling is dat je je app.config (oid) verandert vanuit je code, dit bestand lijkt bedoelt te zijn voor configuratie van je applicatie en niet voor het storen van settings zoals je met .ini en de registry gewend bent.

Ik denk dat je zelf een (xml)bestand moet maken voor het storen en retreiven van preferences etc.

  • GrimaceODespair
  • Registratie: December 2002
  • Laatst online: 05:56

GrimaceODespair

eens een tettenman, altijd ...

Volgens mij slingert er op CodeProject iets rond om dat te doen. Ik zal nog eens ff checken.

edit:
Hmm... ik kan het niet vinden. Maar:
[list=1]
• Zorg ervoor dat ASPNET schrijfrecht heeft op het bestand
• Je kan misschien een xslt gebruiken (is ook flexibeler)
[/list]

[ Voor 52% gewijzigd door GrimaceODespair op 16-09-2004 22:06 ]

Wij onderbreken deze thread voor reclame:
http://kalders.be


Verwijderd

Topicstarter
J27 schreef op 16 september 2004 @ 21:57:
Ik denk dat je zelf een (xml)bestand moet maken voor het storen en retreiven van preferences etc.
Ook goed, kom voor mij op hetzelfde neer :P
Ik kan wel lezen vanuit XML, maar schrijven naar XML is in de meeste tutorials zo ongelooflijk omslachtig dat is het overzicht niet meer zie.

  • EfBe
  • Registratie: Januari 2000
  • Niet online
1) inladen in XmlDocument
2) Xpath query maken die de node select
3) attribute selecteren en value wijzigen
4) xmldocument contents weer wegschrijven.

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


Verwijderd

Topicstarter
EfBe schreef op 16 september 2004 @ 22:16:
1) inladen in XmlDocument
2) Xpath query maken die de node select
3) attribute selecteren en value wijzigen
4) xmldocument contents weer wegschrijven.
Heb bovenstaande config file naar Config.xml gecopieerd.
Volgende code gebruikt.

C#:
1
2
3
4
5
XmlDocument XD = new XmlDocument();
XD.Load("Config.xml");
XmlNode selNode = XD.SelectSingleNode("//[@key='txtServer.Text']");
selNode.Attributes["value"].Value = "Test";
XD.Save("Config.xml");


Zou volgens mij moeten werken, maar geeft me een mooie:

An unhandled exception of type 'System.Xml.XPath.XPathException' occurred in system.xml.dll

Additional information: System error.

Verwijderd

Ik weet helemaal niets van C#, maar het lijkt mij dat je Xpath expressie niet helemaal jofel is.

Probeer eens:

//add[@key="txtServer.Text"]

in plaats van:

//[@key="txtServer.Text"]

  • GrimaceODespair
  • Registratie: December 2002
  • Laatst online: 05:56

GrimaceODespair

eens een tettenman, altijd ...

Ik weet niet wat de context van je app is, maar xmlpoke in NAnt is ook erg handig om config files aan te passen.

Wij onderbreken deze thread voor reclame:
http://kalders.be


Verwijderd

Verwijderd schreef op 17 september 2004 @ 10:50:
Ik weet helemaal niets van C#, maar het lijkt mij dat je Xpath expressie niet helemaal jofel is.

Probeer eens:

//add[@key="txtServer.Text"]

in plaats van:

//[@key="txtServer.Text"]
Idd,

En hou er rekening mee dat als je je file vanuit Visual Studios debugged hij de XML file zoekt in

Program Files\Microsoft Visual Studio .NET Whidbey\Common7\IDE\

Dus dat je misschien de exe uit je bin folder moet opstarten en daar ook de XML file moet hebben staan.

[ Voor 37% gewijzigd door Verwijderd op 17-09-2004 15:47 ]


Verwijderd

Topicstarter
B) Cool ...
Pagina: 1