I have the XML given below. From this XML, in an ASPX page with an ASCX control that will contain the data, I want a drop-down on top with option ‘GMAT’, ‘GRE’, ‘LSAT’, and ‘MCAT’. And when I select GMAT below it will show only GMAT brochure and same with others.
Can you please provide some code for this?
<?xml version='1.0' encoding='utf-8'?> <root> <data> <ImageId>tcm556662</ImageId> <ImageURL>/Images/2008_gmat_brochure_uk_thumb_tcm55-7311.gif</ImageURL> <ImageTitle>GMAT Brochure</ImageTitle> <Description><p xmlns='http://www.w3.org/1999/xhtml'>Classroom and Online Coursegrams.</p></Description> <FilePath>/Images/gmat_brochure_uk_tcm55-8064.pdf</FilePath> </data> <data> <ImageId>tcm5510981</ImageId> <ImageURL>/Images/practice-test-image_tcm55-10980.JPG</ImageURL> <ImageTitle>GMAT Problem Solving Questions and Answers</ImageTitle> <Description>Download Kaplan's GMAT Problem So to each question.</Description> <FilePath>/Images/gmat-sample-questions_tcm55-10979.pdf</FilePath> </data> <data> <ImageId>tcm5511066</ImageId> <ImageURL>/Images/practice-test-image_tcm55-10980.JPG</ImageURL> <ImageTitle>GMAT Sentence Correction Practice Questions</ImageTitle> <Description><p xmlns='http://www.w3.org/1999/xhtml'>Tick the box to download GMsee how you might do on this section of the GMAT exam.</p></Description> <FilePath>/Images/gmat-sentence-correction_tcm55-11065.pdf</FilePath> </data> <data> <ImageId>tcm556663</ImageId> <ImageURL>/Images/gre_brochure_thumb_tcm55-7315.gif</ImageURL> <ImageTitle>GRE Brochure</ImageTitle> <Description><p xmlns='http://www.w3.org/1999/xhtml'>Courses and Tutoring for the Grprograms</p></Description> <FilePath>/Images/gre-brochure_tcm55-8065.pdf</FilePath> </data> <data> <ImageId>tcm5511219</ImageId> <ImageURL>/Images/practice-test-image_tcm55-10980.JPG</ImageURL> <ImageTitle>GRE Quantitative Questions Answers and Explanations</ImageTitle> <Description>Download the answers and exp with the correct answer. Tick the box and click download now to start the process.</Description> <FilePath>/Images/gre-quantitative-practice-questions_tcm55-11214.pdf</FilePath> </data> <data> <ImageId>tcm5511220</ImageId> <ImageURL>/Images/practice-test-image_tcm55-10980.JPG</ImageURL> <ImageTitle>GRE Sentence Completion Practice Question Answers and Explanations</ImageTitle> <Description><p xmlns='http://www.w3.org/1999/xhtml'>Complete the sentence on the download now button to see how you did.</p></Description> <FilePath>/Images/gre-sentence-completions_tcm55-11213.pdf</FilePath> </data> <data> <ImageId>tcm558073</ImageId> <ImageURL>/Images/lsat_brochure_thumb_tcm55-7316.gif</ImageURL> <ImageTitle>LSAT Brochure</ImageTitle> <Description>Courses and Tutoring for the Law School Admission US law schools</Description> <FilePath>/Images/lsat-brochure_tcm55-8066.pdf</FilePath> </data> <data> <ImageId>tcm5511275</ImageId> <ImageURL>/Images/practice-test-image_tcm55-10980.JPG</ImageURL> <ImageTitle>LSAT Comparative Reading Practice Questions Answers and Explanations</ImageTitle> <Description>Try answering the LSAT Comparative Reading and click on download now.</Description> <FilePath>/Images/comparative-reasoning_tcm55-11269.pdf</FilePath> </data> <data> <ImageId>tcm5511281</ImageId> <ImageURL>/Images/practice-test-image_tcm55-10980.JPG</ImageURL> <ImageTitle>LSAT Reading Comprehension Practice Questions Answers and Explanations</ImageTitle> <Description><p xmlns='http://www.w3.org/1999/xhtml'>Read the passage and try the questions as now Lion Practice Questions Answers and Explanations.</p></Description> <FilePath>/Images/lsat-reading-comprehension_tcm55-11280.pdf</FilePath> </data> <data> <ImageId>tcm558074</ImageId> <ImageURL>/Images/mcat_brochure_thumb_tcm55-7317.gif</ImageURL> <ImageTitle>MCAT Brochure</ImageTitle> <Description>Courses and Tutoring for the Medical College Admission Test (MCAT)</Description> <FilePath>/Images/mcat-brochure_tcm55-8067.pdf</FilePath> </data> <data> <ImageId>tcm5511278</ImageId> <ImageURL>/Images/practice-test-image_tcm55-10980.JPG</ImageURL> <ImageTitle>MCAT Biological Sciences Practice Questions Answers and Explanations</ImageTitle> <Description>Have you wri download now to find out how you've done.</Description> <FilePath>/Images/mcat-biological-sciences_tcm55-11271.pdf</FilePath> </data> </root>
Below is the Function for reading the XML file:
private DataSet GenerateDatasetFromXml() { string xmlFile = string.Empty; DataSet xmlFileData = new DataSet(); string selItem = string.Empty; xmlFile = @Server.MapPath('~/' + ConfigurationManager.AppSettings['BrochureXml'].ToString()); string sfinalString = ''; hdnIds.Value = ''; try { if (File.Exists(xmlFile)) { xmlFileData.ReadXml(xmlFile); } } catch (Exception ex) { throw ex; } return xmlFileData; }
Right now, you could only select those items based on string-parsing the ImageTitle and finding substring in it – less than optimal…
If there’s any chance at all, I’d recommend adding a tag (or whatever you want to call it) to your data, something like this:
That way, selecting the proper elements would be as easy a very simple XPath expression:
once you have loaded your data file into an XmlDocument (or you the Linq-to-XML way, if you prefer that).
Marc