Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > reading XML files from codebehind file

Reply
Thread Tools

reading XML files from codebehind file

 
 
Martin Eyles
Guest
Posts: n/a
 
      06-27-2005
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




 
Reply With Quote
 
 
 
 
Hans Kesting
Guest
Posts: n/a
 
      06-27-2005
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



 
Reply With Quote
 
 
 
 
Martin Eyles
Guest
Posts: n/a
 
      06-27-2005
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


"Hans Kesting" <> wrote in message
news:...
> 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
>
>
>



 
Reply With Quote
 
Martin Eyles
Guest
Posts: n/a
 
      06-27-2005
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


"Martin Eyles" <> wrote in message
news:...
> 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



 
Reply With Quote
 
=?Utf-8?B?UGV0ZXIgS3J5c3phaw==?=
Guest
Posts: n/a
 
      09-09-2005
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.

 
Reply With Quote
 
Martin Eyles
Guest
Posts: n/a
 
      09-13-2005
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


"Peter Kryszak" <> wrote in message
news:986503CD-1DEA-4378-A48F-...
> 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.
>



 
Reply With Quote
 
Kevin Spencer
Guest
Posts: n/a
 
      09-13-2005
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" <> wrote in message
news:...
> 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
>
>
> "Peter Kryszak" <> wrote in message
> news:986503CD-1DEA-4378-A48F-...
>> 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.
>>

>
>



 
Reply With Quote
 
Martin Eyles
Guest
Posts: n/a
 
      09-13-2005
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


"Kevin Spencer" <> wrote in message
news:...
> 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" <> wrote in message
> news:...
> > 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
> >
> >
> > "Peter Kryszak" <> wrote in

message
> > news:986503CD-1DEA-4378-A48F-...
> >> 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.
> >>

> >
> >

>
>



 
Reply With Quote
 
Kevin Spencer
Guest
Posts: n/a
 
      09-13-2005
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" <> wrote in message
news:...
> 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
>
>
> "Kevin Spencer" <> wrote in message
> news:...
>> 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" <> wrote in message
>> news:...
>> > 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
>> >
>> >
>> > "Peter Kryszak" <> wrote in

> message
>> > news:986503CD-1DEA-4378-A48F-...
>> >> 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.
>> >>
>> >
>> >

>>
>>

>
>



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Newbie: Multiple codebehind files John Spiegel ASP .Net 5 08-30-2007 05:35 PM
UnauthorizedAccessException when reading XML files (no problem when reading other file-types) blabla120@gmx.net ASP .Net 0 09-15-2006 02:08 PM
Problem to insert an XML-element by XSLT-converting from one XML-file into another XML-file jkflens XML 2 05-30-2006 09:41 AM
Different results parsing a XML file with XML::Simple (XML::Sax vs. XML::Parser) Erik Wasser Perl Misc 5 03-05-2006 10:09 PM
Re: reusing codebehind files? Scott Allen ASP .Net 1 04-13-2004 12:54 PM



Advertisments
 



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57