By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
457,906 Members | 1,771 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 457,906 IT Pros & Developers. It's quick & easy.

reading XML files from codebehind file

P: n/a
Hi,
I have a configuration file I made in xml which I am using to name a
database server. (this way I can deploy my web page on various servers, and
just change this file to make it work). Unfortunately, I can't figure out
how to read this from the server side code behind file (either vb or c#).
Can anyone
post some sample code for this.

Thanks,
Martin

(xml file follows)

aConfigFile.xml
-------------------
<?xml version="1.0" encoding="utf-8" ?>
<aConfigFile xmlns="http://tempuri.org/aConfigFile.xsd">
<ServerName>thisIsTheNameOfADatabaseServer</ServerName>
</aConfigFile>

--
Martin Eyles
ma**********@NOSPAM.bytronic.com

Nov 19 '05 #1
Share this Question
Share on Google+
8 Replies


P: n/a
Martin Eyles wrote:
Hi,
I have a configuration file I made in xml which I am using to name
a database server. (this way I can deploy my web page on various
servers, and just change this file to make it work). Unfortunately, I
can't figure out how to read this from the server side code behind
file (either vb or c#). Can anyone
post some sample code for this.

Thanks,
Martin

(xml file follows)

aConfigFile.xml
-------------------
<?xml version="1.0" encoding="utf-8" ?>
<aConfigFile xmlns="http://tempuri.org/aConfigFile.xsd">
<ServerName>thisIsTheNameOfADatabaseServer</ServerName>
</aConfigFile>


You have to figure out the exact path to your file (hint: use MapPath),
then you can load that into an XmlDocument. If you place this file
within the website, use the extension ".config" (instead of .xml), then visitors
can't access that file.

XmlDocument cfg = new XmlDocument();
cfg.Load(MapPath("myfile.config");

XmlNode nd = cfg.SelectSingleNode("//ServerName");

but: you either have to remove the namespace (xmlns=..), or figure out how to
use the overload of SelectSingleNode with namespacemanager.

Hans Kesting

Nov 19 '05 #2

P: n/a
Hi,
Thanks for the code. I had to change XmlDocument to XmlDataDocument, but
otherwise it works (from a c# page). This is the final version I have put in
the test page I did.

System.Xml.XmlDataDocument cfg = new System.Xml.XmlDataDocument();
cfg.Load(MapPath("aConfigFile.config"));
System.Xml.XmlNode nd = cfg.SelectSingleNode("//ServerName");
Response.Write(nd.InnerText);

I just need to know what to do to convert it to VB.NET, as some of my pages
use this too. Most of this is Ok - My problem is that vb doesn't appear to
support the System.Xml.XmlNode object. Any Ideas?

Thanks,
Martin

--
Martin Eyles
ma**********@NOSPAM.bytronic.com

"Hans Kesting" <ne***********@spamgourmet.com> wrote in message
news:em**************@TK2MSFTNGP09.phx.gbl...
Martin Eyles wrote:
Hi,
I have a configuration file I made in xml which I am using to name
a database server. (this way I can deploy my web page on various
servers, and just change this file to make it work). Unfortunately, I
can't figure out how to read this from the server side code behind
file (either vb or c#). Can anyone
post some sample code for this.

Thanks,
Martin

(xml file follows)

aConfigFile.xml
-------------------
<?xml version="1.0" encoding="utf-8" ?>
<aConfigFile xmlns="http://tempuri.org/aConfigFile.xsd">
<ServerName>thisIsTheNameOfADatabaseServer</ServerName>
</aConfigFile>
You have to figure out the exact path to your file (hint: use MapPath),
then you can load that into an XmlDocument. If you place this file
within the website, use the extension ".config" (instead of .xml), then

visitors can't access that file.

XmlDocument cfg = new XmlDocument();
cfg.Load(MapPath("myfile.config");

XmlNode nd = cfg.SelectSingleNode("//ServerName");

but: you either have to remove the namespace (xmlns=..), or figure out how to use the overload of SelectSingleNode with namespacemanager.

Hans Kesting

Nov 19 '05 #3

P: n/a
Sorry,
just discovered what was wrong with the conversion. intelitext kept
trying to make it XmlNodeType, but higher up the list XmlNode was available,
and this works. The VB code works out to be:-

Dim cfg As New System.Xml.XmlDataDocument
cfg.Load(MapPath("aConfigFile.config"))
Dim nd As System.Xml.XmlNode
nd = cfg.SelectSingleNode("//ServerName")
Response.Write(nd.InnerText)

--
Martin Eyles
ma**********@NOSPAM.bytronic.com

"Martin Eyles" <ma**********@NOSPAM.bytronic.com> wrote in message
news:11*************@corp.supernews.com...
Hi,
Thanks for the code. I had to change XmlDocument to XmlDataDocument, but otherwise it works (from a c# page). This is the final version I have put in the test page I did.

System.Xml.XmlDataDocument cfg = new System.Xml.XmlDataDocument();
cfg.Load(MapPath("aConfigFile.config"));
System.Xml.XmlNode nd = cfg.SelectSingleNode("//ServerName");
Response.Write(nd.InnerText);

I just need to know what to do to convert it to VB.NET, as some of my pages use this too. Most of this is Ok - My problem is that vb doesn't appear to
support the System.Xml.XmlNode object. Any Ideas?

Thanks,
Martin

Nov 19 '05 #4

P: n/a
Is there some reason that you are not using
System.ConfigurationSettings.AppSettings() to get to the web.config file?

This is a very easy way for ASP.NET code (C# or VB.NET) to get to
configuration data.

--
Peter Kryszak
TeleCommunication Systems, Inc.

Nov 19 '05 #5

P: n/a
web.config has loads of junk data that I don't want in my config file. I
want an easy to write config file that I can write for each of the places
this is installed.

--
Martin Eyles
ma**********@NOSPAM.bytronic.com

"Peter Kryszak" <Pe**********@discussions.microsoft.com> wrote in message
news:98**********************************@microsof t.com...
Is there some reason that you are not using
System.ConfigurationSettings.AppSettings() to get to the web.config file?

This is a very easy way for ASP.NET code (C# or VB.NET) to get to
configuration data.

--
Peter Kryszak
TeleCommunication Systems, Inc.

Nov 19 '05 #6

P: n/a
Well, Martin, I would recommend using the .Net Configuration namespace, and
the web.config file. It may be uncomfortable to you now, but it is very
well-conceived, extensible, and standardized, meaning that other .Net
developers will already know how to use it if necessary.

However, assuming you want to go this route, check out the various
System.Xml namespaces. The .Net platform also has XML support out the wazoo.
Which namespaces and classes you use depend on how you want to use the XML.
Do you want a simple XML document, or something more strongly-typed? Do you
need to work with a DTD? A Schema? Again, the .Net platform and CLR support
all of the XML specification.

--
HTH,

Kevin Spencer
Microsoft MVP
..Net Developer
Neither a follower nor a lender be.

"Martin Eyles" <ma**********@NOSPAM.bytronic.com> wrote in message
news:11*************@corp.supernews.com...
web.config has loads of junk data that I don't want in my config file. I
want an easy to write config file that I can write for each of the places
this is installed.

--
Martin Eyles
ma**********@NOSPAM.bytronic.com

"Peter Kryszak" <Pe**********@discussions.microsoft.com> wrote in message
news:98**********************************@microsof t.com...
Is there some reason that you are not using
System.ConfigurationSettings.AppSettings() to get to the web.config file?

This is a very easy way for ASP.NET code (C# or VB.NET) to get to
configuration data.

--
Peter Kryszak
TeleCommunication Systems, Inc.


Nov 19 '05 #7

P: n/a
for context, the file only contains the name of an sql server at the moment.
There may be a couple of added bits later, but probably not more than five
tags. The config file works now, so I'm not bothered about any extra. Just
want to keep it simple. (thanks for all the earlier help, this sorted out
the problems I was having). Still, I take the point that, if I'm doing
something more complex, it might be useful to use another method.

<?xml version="1.0" encoding="utf-8" ?>
<L_______Config>
<ServerName>server</ServerName>
</L_______Config>

(L_______ is just to obscure a product name)

Thanks,
Martin

--
Martin Eyles
ma**********@NOSPAM.bytronic.com

"Kevin Spencer" <ke***@DIESPAMMERSDIEtakempis.com> wrote in message
news:el*************@TK2MSFTNGP12.phx.gbl...
Well, Martin, I would recommend using the .Net Configuration namespace, and the web.config file. It may be uncomfortable to you now, but it is very
well-conceived, extensible, and standardized, meaning that other .Net
developers will already know how to use it if necessary.

However, assuming you want to go this route, check out the various
System.Xml namespaces. The .Net platform also has XML support out the wazoo. Which namespaces and classes you use depend on how you want to use the XML. Do you want a simple XML document, or something more strongly-typed? Do you need to work with a DTD? A Schema? Again, the .Net platform and CLR support all of the XML specification.

--
HTH,

Kevin Spencer
Microsoft MVP
.Net Developer
Neither a follower nor a lender be.

"Martin Eyles" <ma**********@NOSPAM.bytronic.com> wrote in message
news:11*************@corp.supernews.com...
web.config has loads of junk data that I don't want in my config file. I
want an easy to write config file that I can write for each of the places this is installed.

--
Martin Eyles
ma**********@NOSPAM.bytronic.com

"Peter Kryszak" <Pe**********@discussions.microsoft.com> wrote in message news:98**********************************@microsof t.com...
Is there some reason that you are not using
System.ConfigurationSettings.AppSettings() to get to the web.config file?
This is a very easy way for ASP.NET code (C# or VB.NET) to get to
configuration data.

--
Peter Kryszak
TeleCommunication Systems, Inc.



Nov 19 '05 #8

P: n/a
Well, Martin, you actually have a lot of control over your web.config file
(and other configuration files). You can add custom configuration sections,
use the existing appSettings section, and get quite a lot of mileage out of
it, without getting too complicated. You can also add comments to it.

But for a simple XML file such as you've described, the
System.Xml.XmlDocument class can provide you with most of what you need. You
can create one by simply passing a path to the XML file to its constructor.
And you can iterate through its nodes, and plenty more, with a great deal of
detail.

--
HTH,

Kevin Spencer
Microsoft MVP
..Net Developer
Neither a follower nor a lender be.

"Martin Eyles" <ma**********@NOSPAM.bytronic.com> wrote in message
news:11*************@corp.supernews.com...
for context, the file only contains the name of an sql server at the
moment.
There may be a couple of added bits later, but probably not more than five
tags. The config file works now, so I'm not bothered about any extra. Just
want to keep it simple. (thanks for all the earlier help, this sorted out
the problems I was having). Still, I take the point that, if I'm doing
something more complex, it might be useful to use another method.

<?xml version="1.0" encoding="utf-8" ?>
<L_______Config>
<ServerName>server</ServerName>
</L_______Config>

(L_______ is just to obscure a product name)

Thanks,
Martin

--
Martin Eyles
ma**********@NOSPAM.bytronic.com

"Kevin Spencer" <ke***@DIESPAMMERSDIEtakempis.com> wrote in message
news:el*************@TK2MSFTNGP12.phx.gbl...
Well, Martin, I would recommend using the .Net Configuration namespace,

and
the web.config file. It may be uncomfortable to you now, but it is very
well-conceived, extensible, and standardized, meaning that other .Net
developers will already know how to use it if necessary.

However, assuming you want to go this route, check out the various
System.Xml namespaces. The .Net platform also has XML support out the

wazoo.
Which namespaces and classes you use depend on how you want to use the

XML.
Do you want a simple XML document, or something more strongly-typed? Do

you
need to work with a DTD? A Schema? Again, the .Net platform and CLR

support
all of the XML specification.

--
HTH,

Kevin Spencer
Microsoft MVP
.Net Developer
Neither a follower nor a lender be.

"Martin Eyles" <ma**********@NOSPAM.bytronic.com> wrote in message
news:11*************@corp.supernews.com...
> web.config has loads of junk data that I don't want in my config file.
> I
> want an easy to write config file that I can write for each of the places > this is installed.
>
> --
> Martin Eyles
> ma**********@NOSPAM.bytronic.com
>
> "Peter Kryszak" <Pe**********@discussions.microsoft.com> wrote in message > news:98**********************************@microsof t.com...
>> Is there some reason that you are not using
>> System.ConfigurationSettings.AppSettings() to get to the web.config file? >>
>> This is a very easy way for ASP.NET code (C# or VB.NET) to get to
>> configuration data.
>>
>> --
>> Peter Kryszak
>> TeleCommunication Systems, Inc.
>>
>
>



Nov 19 '05 #9

This discussion thread is closed

Replies have been disabled for this discussion.