Solved

Extracting Data from XML

Posted on 2006-07-20
3
255 Views
Last Modified: 2012-06-22
Hi

My first task was to : extract country code and country name values in a combo box:

I did this and here is my code:

====================================
'ASP Code start here:

Set objXMLDoc = CreateObject("Microsoft.XMLDOM")
      objXMLDoc.async = False
      objXMLDoc.loadXML("countries.xml")
      

Response.Write "<form action='getCity.asp' method='post'>"

%>
<select name="txtCountryID" onChange="window.open(this.options[this.selectedIndex].value,'_self')">
<%

      'Response.Write "<option value='' selected>Select Country</option>"
      
      Set NodeList2 = objXMLDoc.getElementsByTagName("CoID")
      Set NodeList = objXMLDoc.getElementsByTagName("Country")
      
      
      numNodes2 = NodeList2.Length
      
      For i = 1 To NumNodes2
               Set CurrNode2 = NodeList2.nextNode
               Set CurrNode = NodeList.nextNode
               Response.Write "<option value='getCity.asp?CountryID="&CurrNode2.text&"&Country="&CurrNode.text&"'>"&CurrNode.text&"</option>"
      Next

      Response.Write "</select>"
      Response.Write "</form>"
'Asp Code End here
============================================


============================================
'short version of my XML file
<?xml version="1.0" encoding="utf-8" ?>
- <CountriesCities>
- <Countries>
  <CoID>111</CoID>
  <Country>ALBANIA</Country>
  <Cities CiID="1478" City="TIRANA" />
  </Countries>
- <Countries>
  <CoID>1</CoID>
  <Country>AUSTRALIA</Country>
  <Cities CiID="1" City="ADELAIDE" />
  <Cities CiID="4" City="MELBOURNE" />
  <Cities CiID="6" City="SYDNEY" />
  </Countries>
- <Countries>

'XML file end here
============================================

Until here I am fine.

My problem is:

I have now the countries in the combo on the first page. On the next page, I want another combo, with the cities from selected country.


Clarification: if on the first page selected country was Albania, I would like to get Tirana only in my combobox, and if selected country was Australia to get: ADELAIDE, MELBOURNE and SYDNEY

The very same as in the country combo, ID is the value and the name is displayed in the combo.

Anyone can help?

Regards, Zoran
0
Comment
Question by:zoran_m
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
3 Comments
 
LVL 60

Accepted Solution

by:
Geert Bormans earned 500 total points
ID: 17219231
Hi zoran_m,

It seems to me that all you need is a way to select the cities based on the country
and that you can deal with the rest yourself

instead of using the
Set NodeList = objXMLDoc.getElementsByTagName("Country")

you can use
Set NodeList = objXMLDoc.SelectNodes("//Countries[Country = 'AUSTRALIA']/Cities/@City")

selectnodes allows you to select nodes based on an XPath expression
the expression is a string so you can construct it through concatenation with the country name as a variable eg.

Cheers!
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction In my previous article (http://www.experts-exchange.com/Microsoft/Development/MS-SQL-Server/SSIS/A_9150-Loading-XML-Using-SSIS.html) I showed you how the XML Source component can be used to load XML files into a SQL Server database, us…
I was working on a PowerPoint add-in the other day and a client asked me "can you implement a feature which processes a chart when it's pasted into a slide from another deck?". It got me wondering how to hook into built-in ribbon events in Office.
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …

733 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question