Xml Can';t访问操作脚本3(AS3)中的子节点

Xml Can';t访问操作脚本3(AS3)中的子节点,xml,flash,nodes,actionscript-3,Xml,Flash,Nodes,Actionscript 3,我在访问XML文件中的任何节点时遇到问题。 我可以跟踪整个文件,但一旦我尝试访问XML中的任何节点,跟踪就不会返回任何结果。 基本上使XML数据无法使用 AS3代码: var citReq1:URLRequest = new URLRequest("http://serverstuff.com...format=xml"); citReq1.contentType = "text/xml"; citReq1.method = URLRequestMethod.POST; var citL

我在访问XML文件中的任何节点时遇到问题。 我可以跟踪整个文件,但一旦我尝试访问XML中的任何节点,跟踪就不会返回任何结果。 基本上使XML数据无法使用

AS3代码:

    var citReq1:URLRequest = new URLRequest("http://serverstuff.com...format=xml");
citReq1.contentType = "text/xml";
citReq1.method = URLRequestMethod.POST;
var citLoad1:URLLoader = new URLLoader();
citLoad1.load (citReq1);

citLoad1.addEventListener(Event.COMPLETE, citData)
function citData (event:Event):void{
    var xmlInfo:XML = new XML(event.target.data)

    trace(xmlInfo);
}
返回的XML:

<realtimeinformation xmlns="http://schemas.datacontract.org/2004/07
/ie.dcc.rtpi2.services.publicservices.contracts.RealTimeBusInformation" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<errorcode>0</errorcode>
<errormessage/>
<numberofresults>1</numberofresults>
<stopid>243171</stopid>
<timestamp>07/12/2013 14:42:57</timestamp>
<results>
<result>
<arrivaldatetime>07/12/2013 14:47:00</arrivaldatetime>
<duetime>4</duetime>
<departuredatetime>07/12/2013 14:47:00</departuredatetime>
<departureduetime>4</departureduetime>
<scheduledarrivaldatetime>07/12/2013 14:47:00</scheduledarrivaldatetime>
<scheduleddeparturedatetime>07/12/2013 14:47:00</scheduleddeparturedatetime>
<destination>C.I.T.</destination>
<destinationlocalized>C.I.T.</destinationlocalized>
<origin>Kent Station</origin>
<originlocalized>Kent Station</originlocalized>
<direction>I</direction>
<operator>BE</operator>
<additionalinformation/>
<lowfloorstatus>no</lowfloorstatus>
<route>205</route>
<sourcetimestamp>07/12/2013 14:17:44</sourcetimestamp>
</result>
</results>
</realtimeinformation>

非常感谢您的帮助

您还没有演示如何从XML中获取数据。但是,我可以说,按照您现在编写的方式,
xmlInfo
对于您的
citData
侦听器来说是一个局部变量;意思是:您没有将其保存到任何地方,并且在您离开侦听器的那一刻,对
xmlInfo
的任何引用都将返回
null

试试这个:

loadXML("http://serverstuff.com...format=xml");

function loadXML(request:String):void {
    var req:URLRequest = new URLRequest(request);
    req.contentType = "text/xml";
    req.method = URLRequestMethod.POST;

    var loader:URLLoader = new URLLoader();
    loader.addEventListener(Event.COMPLETE, citData)
    loader.load(req);
}

var xmlInfo:XML;
function citData(e:Event):void{
    xmlInfo = new XML(e.target.data)
    trace(xmlInfo);

    exampleExternalFunction();
}

function exampleExternalFunction():void {
    trace(xmlInfo.timestamp)
}

我对xml引用有点生疏,所以您可能需要
xmlInfo.realtimeinformation.timestamp
。无论如何,在本例中,我们将XML存储在一个持久作用域中,该作用域可用于
exampleExternalFunction()
,从而允许它引用我们从XML接收到的属性。

在第1帧的第125行,您有什么?125是设置名称的行。我现在正在处理一个本地XML文件,除了URL请求之外,它不需要更改任何代码。似乎是服务器引起了问题
loadXML("http://serverstuff.com...format=xml");

function loadXML(request:String):void {
    var req:URLRequest = new URLRequest(request);
    req.contentType = "text/xml";
    req.method = URLRequestMethod.POST;

    var loader:URLLoader = new URLLoader();
    loader.addEventListener(Event.COMPLETE, citData)
    loader.load(req);
}

var xmlInfo:XML;
function citData(e:Event):void{
    xmlInfo = new XML(e.target.data)
    trace(xmlInfo);

    exampleExternalFunction();
}

function exampleExternalFunction():void {
    trace(xmlInfo.timestamp)
}