• 0

VB6 Reading XML from website


Question

I'm totally new to Visual Basic 6 so please forgive me if this is a dumb question that has an easy answer. I've searched but I can't find an easy solution that someone like me would understand.

Here is what I would like to do. I want to access a website using my program and read in one of 2 XML file. After reading them, I want it add the values to a variable.

The first XML may be on a URL like: http://www.example.com/version.xml

The XML will look exactly like:

<version>
	<number>3.1.5</number>
</version>

The second XML may be on a URL like: http://www.example.com/news.xml

The XML will look exactly like:

<message>
	<id>786</id>
	<name>Tony Lock</name>
	<subject>Hello World</subject>
	<forum>General</forum>
</message>

I don't have any idea how to connect to a website using VB or how to cycle thought an XML and parse the variables I want. So ideally, the following variables would be populated with the values from the XML:

+-----------+---------------+
|  VB VAR   |  VALUES	   |
+===========+===============+
|  Version  |  3.1.5		|
+-----------+---------------+
|  ID	   |  786		  |
+-----------+---------------+
|  Name	 |  Tony Lock	|
+-----------+---------------+
|  Subject  |  Hello World  |
+-----------+---------------+
|  Forum	|  General	  |
+-----------+---------------+

Thank you so much for your help.

Link to comment
https://www.neowin.net/forum/topic/773202-vb6-reading-xml-from-website/
Share on other sites

13 answers to this question

Recommended Posts

  • 0

I am new to VB and I was given a copy of VB6. I did not even know about VB.net. Where can I download visual basic .net from?

None the less, can you still help me with the code? I am too new at this to even know where to begin.

Edited by TonyLock
  • 0

i concur, your task will be a lot leasier with .net (c# or vb), so if you don't need to use vb6 or are not that far along in your development to mind switching go download it and give it a shot..

i will knock up an example for you when i get into work tomorrow :)

good luck.

  • 0
  TonyLock said:
I am new to VB and I was given a copy of VB6. I did not even know about VB.net. Where can I download visual basic .net from?

None the less, can you still help me with the code? I am too new at this to even know where to begin.

I'll be glad to try. I only suggested updating VB because it'll take me ages to remember/reference VB6 and MS-XML. :)

All the express versions of Visual Studio can be found at http://msdn.microsoft.com/express

(Don't forget the documentation library at the bottom of the page.)

  • 0

Thank you but I have uninstaller VB.net, it was jus way too bloated and none of my old VB6 files our load.

Anyway, what's wrong with spoon feeding? :-P

I've always thought that one of the best ways to learn is not just to experiment (in my case, just stabbing in the dark) but to learn from experienced people, like you folk. And as for using Google, well what do you think I've been doing all weekend, without success?

  • 0
  TonyLock said:
I'm totally new to Visual Basic 6 ...
  TonyLock said:
... and none of my old VB6 files our load.

Surely there can't be that many of them.. :p

But seriously, handling HTTP Requests, XML, and even encryption (from your other thread) is much easier in .Net.

  • 0

There should be a converter to import VB6 into VB .NET. Is it not included anymore?

If you're still wanting to try .NET, here is the first step: requesting the file from the web server. (I'm using the World of Warcraft realm server status as an example because it's a known Url.)

Module XmlModule
	Dim requestUrl As String = "http://www.worldofwarcraft.com/realmstatus/status.xml"

	Sub Main()
		Dim xmlData As String = GetXmlFromUri(requestUrl)
		Console.WriteLine("WoW realm status data:")
		Console.WriteLine()
		Console.WriteLine(xmlData)
		Console.WriteLine()
		Console.Write("Pressr to exit.")
		Console.ReadLine()
	End Sub

	Function GetXmlFromUri(ByVal uri As String) As String
		' This creates a System.Net.WebRequest class that will 
		' get the XML file from the web server
		Dim req As Net.HttpWebRequest = Net.WebRequest.Create(requestUrl)

		' This creates a System.Net.WebResponse class by sending the
		' request and receiving the data.
		Dim resp As Net.HttpWebResponse = req.GetResponse()

		' This creates a System.IO.StreamReader class that will read
		' the xml data from the HttpWebResponse class.
		Dim reader As IO.StreamReader = New IO.StreamReader(resp.GetResponseStream())

		' Read the entire text stream from the response via 
		' the StreamReader
		Dim xml As String = reader.ReadToEnd()

		' Note it is not necessary to call Close() on any of the classes
		' as the .NET Framework will dispose of them automatically when
		' they go out of scope at the end of the function.
		' You can get more advanced and Close/Dispose them manually for
		' more efficiency, though.
		Return xml
	End Function

End Module

If you want to continue, give this a try and let me know. Next we can do the actual parsing of the data.

  • 0

To be honest, you're really not going to get far with VB6. I'd actually recommend that since you're taking the time to learn a language, that you just start with C#. VB.NET really is quite a transitional language from people that know VB6 [which you, by any stretch of the imagination, do not] to C#. C# is more widely supported and opens more opportunities for you down the line.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • No operating system works well with programs that modify its interface. There will always be bugs, whether it's MacOS or Linux. Windows too, you'll only suffer from bugs using this crap software.
    • KDE brings UI improvements, bug fixes and more to Plasma 6.4 as stable release draws near by David Uzondu With less than a month to the release of Plasma 6.4, the KDE dev team has shared what it has been working on in the latest issue of its weekly roundup. The update shows a heavy focus on user interface polish and a whole slew of bug fixes as the June 17 release date gets closer. The team has pushed a number of UI refinements for the upcoming version. On the System Settings page for Wi-Fi, the network list can now be fully navigated with a keyboard. KDE also disabled the ability to drag and drop displays on top of one another in the monitor settings. This was done because it could create unsupported arrangements that triggered a cascade of strange bugs throughout the system. Waking up a sleeping computer by pressing the power button no longer causes the bizarre logout screen to appear after you unlock it, which is a relief. Alignment issues in the settings page for the Digital Clock widget were also resolved. The list of bug fixes for 6.4 is extensive. The development team has fixed the most common crash affecting the System Monitor and squashed another one related to a divide-by-zero error. For users with multiple monitors, a long-awaited fix has landed that prevents windows from disappearing when the screen they are on gets disconnected. Even the humble Sticky Notes widget received attention; it will no longer freeze the Plasma shell if you place it on a very thick panel. Discover, the software center, also had a bug patched that caused it to crash if closed too quickly after launch. Here's the full list of improvements: Putting a Sticky Note widget on a very thick panel can no longer cause Plasma to freeze; now, you can use a thick panel with a sticky note on it as a notes sidebar. Fixed the most common System Monitor crash. Fixed another crash in System Monitor, this time a divide-by-zero. Fixed a case where xdg-desktop-portal-kde could crash after you choose a video source to start streaming. Fixed a bug that caused Discover to crash if you close it immediately after it launched. Fixed multiple subtle bugs with the screen chooser widget and OSD that caused it to do the wrong thing on rotated screens or when mirroring screens. Fixed a bug that caused the System Settings’ search field not to be focused properly when pressing Ctrl+F while any UI elements in a settings page already had focus. Fixed the root cause of multiple issues involving windows disappearing when you disconnect the screen they’re on. Clicking a button on a desktop widget that opens a menu no longer inappropriately makes the widget enter Widget Edit Mode. Files with a # or ? character in their name or full path are no longer unexpectedly missing from the history lists in Kicker/Kickoff/etc launchers. Fixed a bug that caused the screen chooser window to sometimes not appear as expected when OBS was launched. Fixed a bug that caused tiled windows on a multi-screen setup to lose their tiling settings when the system went to sleep and woke up again. The "Move window to [activity]" feature now works properly when invoked from the Task Manager widget. Fixed a bug in the Kicker Application Menu that caused keyboard navigation not to work if the popup opened with an item under the pointer. In the Overview effect’s grid view, dragging windows tiled on one virtual desktop over to a different virtual desktop now keeps them tiled as expected. The focus may be on the imminent 6.4 release, but work on what comes next never really stops. Looking ahead, development on Plasma 6.5 is already well underway. Just last week, the KDE team brought several performance improvements to Plasma 6.5.0. This week, the team fixed a nagging bug that sometimes caused the Networks widget to think a hotspot was still enabled after disconnecting from Wi-Fi. On the features side, the System Settings' Fonts page now prevents you from breaking your system entirely by setting fonts below 4pt. In addition to that, switching time spans in the Info Center’s energy page now features smooth graph animations. Performance-wise, kwriteconfig should also be faster, allowing changes you made to the keyboard layout using the tool to reflect immediately.
    • Display Driver Uninstaller (DDU) 18.1.1.4 by Razvan Serea Display Driver Uninstaller (DDU) is a utility for completely removing AMD/NVIDIA/INTEL graphics drivers and related packages from your system, attempting to eliminate all leftovers (including registry entries, folders and files, driver store). Though AMD/NVIDIA/INTEL drivers can usually be removed via the Windows Control Panel, this uninstaller tool was created for situations where standard uninstall fails, or when you need to fully remove NVIDIA or ATI graphics card drivers. After using this driver cleaner, your system will behave as though it’s the first time you’re installing a new driver—similar to a fresh Windows installation. As with all such tools, we recommend creating a restore point beforehand, allowing you to undo changes if issues arise. If you're having trouble installing an older or newer driver, try it—there are reports that it resolves such problems. Recommended usage: The tool can be used in Normal mode but for absolute stability when using DDU, Safemode is always the best. Make a backup or a system restore (but it should normally be pretty safe). It is best to exclude the DDU folder completely from any security software to avoid issues. You do NOT need to uninstall the driver prior using DDU. Requirements: .NET Framework 4.8 Compatible with Windows 7, 8, 8.1, 10, and 11 (32-bit or 64-bit) Note: Using on Insider Preview builds is at your own risk. Display Driver Uninstaller (DDU) 18.1.1.4 changelog: Intel: Added NPU presence detection before removing shared DLL files (these were previously left to prevent potential NPU-related issues). Intel: Added optional NPU removal Improved "Extension" driver removal process. Updated several translations. Download: Display Driver Uninstaller 18.1.1.4 | 1.7 MB (Freeware) Download: DDU Portable | 1.2 MB Links: Display Driver Uninstaller Home Page | Screenshot | Forum Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • That is what I also think to a point. How is 26 necessarily different than just another iteration like 18, 19, 20, etc? At first I think it would be better for Apple to use 2026, 2027, and then maybe truncate it to just 28, 29, and so on. Granted, I also think it makes more sense to use the year when it was released (2025 or 25), not 26/2026. Maybe Apple's thinking is as stated by Aditya that the bulk of a release being the current release is during the following year (2026, for example) after it is released (2025, for example). There are other examples of these sorts of things. In the NBA, the season has always started in the Fall and ends in the Spring. When the season ends is how the season is named. So, this is the 2025 NBA season and the Pacers and Thunder are playing to be the 2025 NBA Champions. The NFL starts in the Fall and the end of the season is always in the beginning of the next year as well. The Super Bowl was played on February 9, 2025, but that was the end of the 2024 NFL season. So, contrary to the NBA, the NFL names it season based on when it starts, not when it ends. Maybe that is because more of the NFL season is played at the end of the year (2024 in the most recent example) whereas most of the NBA season is played in the first half of the following year (2025 in the current example).
  • Recent Achievements

    • Week One Done
      abortretryfail earned a badge
      Week One Done
    • First Post
      Mr bot earned a badge
      First Post
    • First Post
      Bkl211 earned a badge
      First Post
    • One Year In
      Mido gaber earned a badge
      One Year In
    • One Year In
      Vladimir Migunov earned a badge
      One Year In
  • Popular Contributors

    1. 1
      +primortal
      495
    2. 2
      snowy owl
      252
    3. 3
      +FloatingFatMan
      251
    4. 4
      ATLien_0
      228
    5. 5
      +Edouard
      191
  • Tell a friend

    Love Neowin? Tell a friend!