Yeah that is not pretty xml. Since your data is not really a list, but
more properties of an object, here is what I would do:
var oLoginInfo:Object = new Object();
var xmlResult = XML(event.result)
var xlNames:XMLList = xmlResult..columnList.string;
var xlValues:XMLList = xmlResult..ArrayOfAnyType.anyType;
for (var i:int=0;i<xlNames.length();i++) {
oLoginInfo[xlColumns[i]] = xlValues[i];
}
To see a value do:
trace(oLoginInfo.lastName); //will trace 'Kolcz'
But also, don't forget to compare the result from both servers, to see
if you get the same result.
Tracy Spratt
Lariat Services
Flex development bandwidth available
________________________________
From: [email protected] [mailto:[email protected]] On
Behalf Of Wally Kolcz
Sent: Friday, January 30, 2009 9:00 PM
To: [email protected]
Subject: RE: [flexcoders] Oh WTF? Web Services: Anyone work with Blue
Disaster (I mean Dragon)?
This is what get from E4X. I have no idea on how to this to an easier
format to use like what I get from an ArrayCollection with a
RemoteObject.
Do I use XMLListCollection? Any hint on how? If I declare my userData
variable as public var userData:XMLListCollection = new
XMLListCollection(); What do I set it to?
Thanks!
Result
<loginResponse
xmlns="http://www.newatlanta.com/bluedragon/cfc/prmc/PRMCProjects/edu/um
ich/security" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<loginResult>
<columnList xmlns="http://www.newatlanta.com/bluedragon">
<string>uniqname</string>
<string>password</string>
<string>lastName</string>
<string>firstName</string>
<string>position</string>
<string>department</string>
<string>role</string>
<string>isActive</string>
</columnList>
<data xmlns="http://www.newatlanta.com/bluedragon">
<ArrayOfAnyType>
<anyType xsi:type="xsd:string">wkolcz</anyType>
<anyType xsi:type="xsd:string">2113</anyType>
<anyType xsi:type="xsd:string">Kolcz</anyType>
<anyType xsi:type="xsd:string">Wally</anyType>
<anyType xsi:type="xsd:string">ColdFusion / Flex
Developer</anyType>
<anyType xsi:type="xsd:string">PRMC</anyType>
<anyType xsi:type="xsd:string">admin</anyType>
<anyType xsi:type="xsd:double">1</anyType>
</ArrayOfAnyType>
</data>
</loginResult>
</loginResponse>
________________________________
From: "Tracy Spratt" <[email protected]>
Sent: Thursday, January 29, 2009 8:29 PM
To: [email protected]
Subject: RE: [flexcoders] Oh WTF? Web Services: Anyone work with Blue
Disaster (I mean Dragon)?
Better set resultFormat="e4x" and look at ther real xml data instead of
the converted object tree.
Tracy Spratt
Lariat Services
Flex development bandwidth available
________________________________
From: [email protected] [mailto:[email protected]] On
Behalf Of Wally Kolcz
Sent: Thursday, January 29, 2009 9:33 AM
To: [email protected]
Subject: [flexcoders] Oh WTF? Web Services: Anyone work with Blue
Disaster (I mean Dragon)?
I have 2 mirrored environments. One on my laptop running Adobe CF8 and
one at the University running Blue Dragon 7. I have the same CFCs set
to remote, the same database stucture, and the same <mx:WebService> on
both. I am just switching the wsdl location between the 2 and I am
getting COMPLETELY diffferent responses. The only difference is the
actual Servers.
When I return a query via web service with Adobe and render it out with
Alert.show(ObjectUtil.toString(e.result),'Result');, I get this:
(mx.collections::ArrayCollection)#0
filterFunction = (null)
length = 1
list = (mx.collections::ArrayList)#1
length = 1
source = (Array)#2
[0] (Object)#3
DEPARTMENT = "PRMC"
FIRSTNAME = "Wally"
ISACTIVE = 1
LASTNAME = "Kolcz"
POSITION = "Senior ColdFusion Architect"
ROLE = "admin"
UNIQNAME = "wkolcz"
uid = "12003FBD-127E-EEEB-4E25-22A5E6599FF8"
sort = (null)
source = (Array)#2
With Blue Dragon I get this:
(Object)#0
columnList = (mx.collections::ArrayCollection)#1
filterFunction = (null)
length = 8
list = (mx.collections::ArrayList)#2
length = 8
source = (Array)#3
[0] "uniqname"
[1] "lastName"
[2] "firstName"
[3] "position"
[4] "department"
[5] "role"
[6] "isActive"
uid = "A8A6C52F-5FDD-35DA-8364-22A4F7846DEB"
sort = (null)
source = (Array)#3
data = (mx.collections::ArrayCollection)#4
filterFunction = (null)
length = 1
list = (mx.collections::ArrayList)#5
length = 1
source = (Array)#6
[0] (mx.collections::ArrayCollection)#7
filterFunction = (null)
length = 8
list = (mx.collections::ArrayList)#8
length = 8
source = (Array)#9
[0] "wkolcz"
[1] "Kolcz"
[2] "Wally"
[3] "ColdFusion / Flex Developer"
[4] "PRMC"
[5] "admin"
[6] 1
uid = "1226A691-AB75-70F7-DA33-22A4F7A30F01"
sort = (null)
source = (Array)#9
uid = "2A52253B-DDF8-716E-0A74-22A4F7A38643"
sort = (null)
source = (Array)#6
I then added
Alert.show(ObjectUtil.toString(e.result.list.source),'source'); and got
this with Adobe:
(Array)#0
[0] (Object)#1
DEPARTMENT = "PRMC"
FIRSTNAME = "Wally"
ISACTIVE = 1
LASTNAME = "Kolcz"
PASSWORD = "2113"
POSITION = "Senior ColdFusion Architect"
ROLE = "admin"
UNIQNAME = "wkolcz"
And this with Blue Dragon:
TypeError: Error #1010: A term is undefined and has no properties.
Anyone know a work around to get the same results? I was able to get my
'uniqname' with Adobe by using userData.getItemArt(0).UNIQNAME but it
fails in BD.
Thanks for ANY help in this Blue Disaster.