Jump to content
Sign in to follow this  
sut

parse xml script returns -1

Recommended Posts

sut

I tried with multiple options but my script seems to always return -1.. Can you please help me

My XML:

<?xml version="1.0" encoding="UTF-8"?>

<testResults>

<buildNumber number=1290_100/>

<serverName>tc1</serverName>

<resultsURL>http://qa-xppro-test/tc1/smokeTest_2013_02_01.html</resultsURL>

<testArea name="WebServiceAPITest">

<param name="total">35</param>

<param name="pass">35</param>

<param name="errors">0</param>

<param name="timeTaken">19.36</param>

</testArea>

<testArea name="restAPI">

<param name="total">35</param>

<param name="pass">35</param>

<param name="errors">0</param>

<param name="timeTaken">19.36</param>

</testArea>

</testResults>

My script:

#include <_XMLDomWrapper.au3>

#include <File.au3>

Global $sFile = "dashboard.xml"

If _XMLFileOpen($sFile) Then

Local $sLvl = _XMLGetAttrib("/testResults/buildNumber", "number")

ConsoleWrite($sLvl & @LF)

$groups_count = _XMLGetNodeCount("/testResults/testArea/param")

ConsoleWrite($groups_count & @LF)

EndIf

I am trying to get all the attribute values and node values in a data structure but I am stuck at the first step itself :-(.. Can anyone help me with the script to get the attribute and node values of th above xml... Thanks..

Share this post


Link to post
Share on other sites
sut

I am a newbie to AutoIT and this is my first script.. pl help..

Share this post


Link to post
Share on other sites
BrewManNH

Seriously? You wait 1 minute to post a bump? Not only are you inpatient, but you're posting in the wrong forum.


If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites
Melba23

sut,

Really not a good start here:

- Wrong forum posting

- Immediate thread bump - please wait at least 24 hrs.

- Double posting.

Please behave better in future. ;)

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites
jdelaney

If your XML was valid, this would work

$oXML=ObjCreate("Microsoft.XMLDOM")
$stest = @DesktopDir & "\xml2.xml"
$oXML.load($stest) ; load file of xml
ConsoleWrite ( $oXML.xml & @CRLF)
$result1 = $oXML.selectSingleNode('//buildNumber/@number')

MsgBox (1,1,$result1.text)

valid: <buildNumber number="1290_100" />

Edited by jdelaney

IEbyXPATH-Grab IE DOM objects by XPATH IEscriptRecord-Makings of an IE script recorder ExcelFromXML-Create Excel docs without excel installed GetAllWindowControls-Output all control data on a given window.

Share this post


Link to post
Share on other sites
dynamitemedia

I have been trying to use this method so i can load the XML into listview

my xml comes back like this however 

channel ID='2' url='http://videe.com/index.php/channel/3a9a071' name='Guest1588664 live from Android' quality='best'/> 
<channel ID='3' url='http://videe.com/index.php/channel/ea579cc92d' name='boulon live' quality='best'/> 
<channel ID='4' url='http://videe.com/index.php/channel/290a3a52b' name='frank11262' quality='best'/> 
<channel ID='5' url='http://videe.com/index.php/channel/ab6c066e' name='REAL MADRID  #  LIVERPOOL 19:45 gmt' quality='best'/>

i have tried this code and i get nothing back
 

$oXML=ObjCreate("Microsoft.XMLDOM")
$stest = @ScriptDir & "videe.xml"
$oXML.load($stest) ; load file of xml

ConsoleWrite ( $oXML.xml & @CRLF)
$result1 = $oXML.selectSingleNode('//channel/@name')

MsgBox (1,1,$result1.text)

i was thinking this would be a great method if i CLICKED on a row in the xml and got that info back.. but cant seem to get anything working on this

Share this post


Link to post
Share on other sites
jdelaney

$xml = "<channels><channel ID='2' url='http://videe.com/index.php/channel/3a9a071' name='Guest1588664 live from Android' quality='best'/> <channel ID='3' url='http://videe.com/index.php/channel/ea579cc92d' name='boulon live' quality='best'/> <channel ID='4' url='http://videe.com/index.php/channel/290a3a52b' name='frank11262' quality='best'/> <channel ID='5' url='http://videe.com/index.php/channel/ab6c066e' name='REAL MADRID  #  LIVERPOOL 19:45 gmt' quality='best'/> </channels>"

$oXML = ObjCreate("Microsoft.XMLDOM")
$oXML.loadXML($xml)
$oNames = $oXML.selectNodes("//channel/@name")

For $oName In $oNames
    ConsoleWrite($oName.text & @crlf)
Next


IEbyXPATH-Grab IE DOM objects by XPATH IEscriptRecord-Makings of an IE script recorder ExcelFromXML-Create Excel docs without excel installed GetAllWindowControls-Output all control data on a given window.

Share this post


Link to post
Share on other sites
dynamitemedia

Thanks but after doing this  i am onlygetting back first result, i know its a error in a loop or something but i just downloaded this yesterday so its still a bit confusing  but MUCH easier than learning some languages..

so what i have here only shows 1st node

; add the XML from above 


$xml = "<channels><channel ID='2' url='http://videe.com/index.php/channel/3a9a071' name='Guest1588664 live from Android' quality='best'/> <channel ID='3' url='http://videe.com/index.php/channel/ea579cc92d' name='boulon live' quality='best'/> <channel ID='4' url='http://videe.com/index.php/channel/290a3a52b' name='frank11262' quality='best'/> <channel ID='5' url='http://videe.com/index.php/channel/ab6c066e' name='REAL MADRID  #  LIVERPOOL 19:45 gmt' quality='best'/> </channels>"


$oXML = ObjCreate("Microsoft.XMLDOM")
$oXML.loadXML($xml)
$oNames = $oXML.selectNodes("//channel/@name")


For $oName In $oNames
    ConsoleWrite($oName.text & @crlf)
$List1 = GUICtrlCreateList($oName.text, 31, 89, 529, 230)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
Next

now what i am trying to do is use a button to open a XML file and what i showed above was just how the xml files look

i tried loading the xml files like this too

$oXML=ObjCreate("Microsoft.XMLDOM")
$stest = @ScriptDir & "\videe.xml"
$oXML.load($stest) ; load file of xml

ConsoleWrite ( $oXML.xml & @CRLF)
$result1 = $oXML.selectNodes('//channel/@name')

which isn't working either. once i figure out how to display that file maybe you can show me how to load it .  thanks

Share this post


Link to post
Share on other sites
jdelaney

$xml = "<channels><channel ID='2' url='http://videe.com/index.php/channel/3a9a071' name='Guest1588664 live from Android' quality='best'/> <channel ID='3' url='http://videe.com/index.php/channel/ea579cc92d' name='boulon live' quality='best'/> <channel ID='4' url='http://videe.com/index.php/channel/290a3a52b' name='frank11262' quality='best'/> <channel ID='5' url='http://videe.com/index.php/channel/ab6c066e' name='REAL MADRID  #  LIVERPOOL 19:45 gmt' quality='best'/> </channels>"

$oXML = ObjCreate("Microsoft.XMLDOM")
$oXML.loadXML($xml)
$oChannels = $oXML.selectNodes("//channel")

For $oChannel In $oChannels
    ConsoleWrite($oChannel.getAttribute("name") & @crlf)
    ConsoleWrite($oChannel.getAttribute("url") & @crlf)
Next

  • Like 1

IEbyXPATH-Grab IE DOM objects by XPATH IEscriptRecord-Makings of an IE script recorder ExcelFromXML-Create Excel docs without excel installed GetAllWindowControls-Output all control data on a given window.

Share this post


Link to post
Share on other sites
dynamitemedia

thanks i went with another method you posted actually

 $strXMLStructure = "//channels/channel"


 $oXML = ObjCreate("Microsoft.XMLDOM")
 $oXML.loadXML($sConverted )


 $oStrings = $oXML.selectNodes($strXMLStructure)
 $oID = 0
 For $oString In $oStrings
     $oID = $oID + 1
     $oURL = $oString.selectSingleNode("./url")
     $oName = $oString.selectSingleNode("./name")
     ConsoleWrite($oID & @TAB & $oName.text & @TAB & $oURL.text  & @CRLF )
 Next

i was just getting ready to repost is why i deleted my other post 

Edited by dynamitemedia

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×