Solved

Parsing XML Values with VbScript

Posted on 2011-09-30
5
485 Views
Last Modified: 2012-05-12
I am trying to parse out an XML file using VbScript.  I have somewhat of a code but is not writing and it is throwing an error 'wrong number of arguments '  Please help, how to read the XML correctly to pull the text from the nodes.

Dim xmlDoc, FirstTag, SecondTag

Set xmlDoc = CreateObject("Msxml2.DOMDocument")
xmlDoc.load("c:\Test\test.xml")

FirstTag = xmlDoc.getElementsByTagName("CageCode")
SecondTag = xmlDoc.getElementsByTagName("PartNumber")

Set objDialog = CreateObject("UserAccounts.CommonDialog")

sText = "C:\Test\Output.txt"

Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oOut = oFSO.CreateTextFile(sText, True)


oOut.WriteLine  FirstTag
oOut.WriteLine  SecondTag


Set xmlDoc = Nothing

Thank you
0
Comment
Question by:drezner7
  • 3
  • 2
5 Comments
 
LVL 74

Expert Comment

by:käµfm³d 👽
ID: 36892100
You've got a couple of issues. Firstly, getElementsByTagName returns an object, so you'll need a Set on lines 6 & 7. Secondly, WriteLine expects a string, but you are attempting to pass objects of type IXMLDOMNode. A modification to lines 17 & 18 is in order as well. Please see the following for my proposed changes.

Dim xmlDoc, FirstTag, SecondTag

Set xmlDoc = CreateObject("Msxml2.DOMDocument")
xmlDoc.load("test.xml")

Set FirstTag = xmlDoc.getElementsByTagName("CageCode")
Set SecondTag = xmlDoc.getElementsByTagName("PartNumber")

Set objDialog = CreateObject("UserAccounts.CommonDialog")

sText = "Output.txt"

Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oOut = oFSO.CreateTextFile(sText, True)


oOut.WriteLine  FirstTag(0).text
oOut.WriteLine  SecondTag(0).text


Set xmlDoc = Nothing

Open in new window


Please note: I'm only taking the first node (i.e. the 0 in lines 17 & 18) when printing. You can loop through the nodes in both FirstTag and SecondTag (they are of type IXMLDOMNodeList) if that is your requirement. The above is meant to be an example to get you headed in the right direction. To see how to loop, you can review here:  http://msdn.microsoft.com/en-us/library/ms765549.aspx
0
 

Author Comment

by:drezner7
ID: 36892451
It throws an error that in line 17: of the code  'object required: '[object]'
0
 
LVL 74

Accepted Solution

by:
käµfm³d   👽 earned 500 total points
ID: 36892543
You may want to check for NULL before trying to use the values:

If Not FirstTag Is Nothing Then
    oOut.WriteLine  FirstTag(0).text
End If

If Not SecondTag Is Nothing Then
    oOut.WriteLine  SecondTag(0).text
End If

Open in new window

0
 

Author Closing Comment

by:drezner7
ID: 36892575
Thank you very much ... It works great. This just saved me 20 hours of work
0
 
LVL 74

Expert Comment

by:käµfm³d 👽
ID: 36892595
NP. Glad to help  = )
0

Featured Post

Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

Join & Write a Comment

This is pretty cool.  The purpose of this VB Script is to help you document where JAR (Java ARchive) files and specifically java class files are located so that you can address issues seen with a client or that you can speak intelligently with a dev…
Over the years I have built up my own little library of code snippets that I refer to when programming or writing a script.  Many of these have come from the web or adaptations from snippets I find on the Web.  Periodically I add to them when I come…
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
This video explains how to create simple products associated to Magento configurable product and offers fast way of their generation with Store Manager for Magento tool.

746 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

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now