无法将xml数据读入flash

时间:2009-12-07 22:41:19

标签: xml flash

我写了一个简单的xml代码,我尝试将xml文件读入flash,但是在输出中我得到了“undefined”。 代码如下。你知道如何解决这个问题吗?感谢。

xml文件(test.xml):

<?xml version='1.0' encoding='ISO-8859-1'?>
<note>
 <to>Tom</to>
 <from>Peter</from>
 <heading>Reminder</heading>
 <body>Don't forget me this weekend!</body>
</note>

Flash程序:

xmlDoc=loadXMLDoc("test.xml");
x=xmlDoc.getElementsByTagName("to")[0];
t1.text=x.childNodes[0].nodeValue;

此致 约翰

1 个答案:

答案 0 :(得分:1)

您确定XML文件的内容只是这一行吗?

Tom Peter Reminder Don't forget me this weekend! 

如果是这样,那可能就是你的问题。或者如果问题中缺少您的标签,那么因为您需要告诉StackOverflow将其格式化为代码,方法是选择它并按下代码按钮(或Ctrl + K)。请编辑您的问题,否则我无法判断您用于解析XML的语句是否存在问题。

我看到的另一个问题在你的ActionsScript中: 您可能无法加载XML文件,然后立即解析它,因为它不会按顺序发生(发生在不同的线程中)。您需要使用URLLoader加载XML,并为URLLoader的{​​{1}}事件添加事件监听器。在该方法中,执行解析XML所需的操作。


我假设你使用的是AS3而不是AS2

编辑:添加了代码示例

在从XML开始加载的主要方法

Event.COMPLETE

创建新方法

var xmlLoader:URLLoader = new URLLoader();
xmlLoader.addEventListener(Event.COMPLETE, showNote);

请务必确保您在舞台上声明了一个实例名称为function showNote(e:Event):void { var note:XML = new XML(e.target.data); var to:String = note.to[0].text(); var from:String = note.from[0].text(); var body:String = note.body[0].text(); //t1.text = "To: " + to + "\nFrom: " + from + "\n\n" + body; t1.htmlText = "<p>To: " + to + "</p><p>From: " + from + "</p><p>" + body + "</p>"; } 的文本字段,并将其属性设置为多行,并将其设置为包含此功能。

基本上,我认为原始代码的问题是以下之一:

  1. 您需要一个String,要从XML节点获取该字符串,您需要使用t1方法。还有其他方法,但这是最基本的。
  2. 使用text()getElementsByTagName遍历XML树的方式可能正确也可能不正确,但肯定更容易出错。 AS3提供了一种更直观的方法来获取来自XML的东西,例如我在我的例子中给出的东西。