Re: How to dynamically resize an array?
- From: Tom Shelton <tom_shelton@xxxxxxxxxxxxxxxxxx>
- Date: Sun, 10 May 2009 17:35:26 -0700
On 2009-05-11, Mike <unknown@xxxxxxxxxx> wrote:
roidy wrote:
NoOfEpisodes is unknown until the episodes have read in one by one from
the xml file. In the previous version of the program I just gave the
array a large value eg. 40 as it is unlikely any season of a TV series
will have that many episodes. I`m just tidying the program up and it
seemed wasteful to declare an array that large when it probably isn`t
needed. The only other way would be to read the xml file twice, firstly
counting the number of episodes and then declaring the array, and then
read it again and fetch in the episode data.
You should not need to read the episodes twice.
Once you load the XML document, use XPATH query statements to find
elements of the document. XPATH is specifically designed to search
for the "DOM" of the XML documentt to returns a list of elements by
providing it a query statement. In other words, if your XML file has
this:
<?xml version='1.0'?>
<shows>
<series>....</series>
<series>....</series>
<series>....</series>
<series>....</series>
<series>....</series>
<series>....</series>
<series>....</series>
<series>....</series>
<shows>
Than you can use an xpath like
"//shows/series"
to find all the <series> within the </shows> branch.
The XPATH language syntax is rich and the official specification for
XPATH is located here.
http://www.w3.org/TR/xpath
You know, if you are going to take the stupendously stupid way of reading the
file in to memory all at once - instead of streaming it - you might as well
make your live simple and use linq (air code):
dim series = from node in document.descendants("series") select node
And even then, you can always write an extension method and stream the file in
using an XmlTextReader - since this is a readonly forward operation. Of
course, this is a much more complex operation in VB then in C#, because of the
lack of yield return.... But, still doable.
--
Tom Shelton
.
- Follow-Ups:
- Re: How to dynamically resize an array?
- From: Michael Williams
- Re: How to dynamically resize an array?
- From: Mike
- Re: How to dynamically resize an array?
- References:
- How to dynamically resize an array?
- From: roidy
- Re: How to dynamically resize an array?
- From: Mike
- Re: How to dynamically resize an array?
- From: Family Tree Mike
- Re: How to dynamically resize an array?
- From: Mike
- Re: How to dynamically resize an array?
- From: roidy
- Re: How to dynamically resize an array?
- From: Gazmik
- Re: How to dynamically resize an array?
- From: roidy
- Re: How to dynamically resize an array?
- From: Mike
- How to dynamically resize an array?
- Prev by Date: Re: Path to my data file for Jet.OLEDB
- Next by Date: Re: unable to change text in richtextbox
- Previous by thread: Re: How to dynamically resize an array?
- Next by thread: Re: How to dynamically resize an array?
- Index(es):
Relevant Pages
|
Loading