首先,我尝试将xml加载到组合框中,并且顺利进行(多次成功)。然后我解决了我的应用程序的另一部分。在一些新部件解决之后,我再次尝试xml-combobox部件,但它给出了不同的结果。错误看起来像这样
TypeError: Error #1088: The markup in the document following the root element must be well-formed.
at flash1_fla::MainTimeline/LoadXMLprovALL()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()
对于AS3:
//some code above here that not related with codes below ...
this.addEventListener(Event.ENTER_FRAME,setCB_Prov);
urlXMLprovALL.addEventListener(Event.COMPLETE,LoadXMLprovALL);
function setCB_Prov(e:Event):void{
urlRequest.url = "http://localhost/stat.me/index.php/main/get_dataProvider_provinsi";
urlXMLprovALL.load(urlRequest);
}
function LoadXMLprovALL(e:Event):void{
this.removeEventListener(Event.ENTER_FRAME, setCB_Prov);
XMLprovALL = new XML(e.target.data);
for(var i:int=0; i<XMLprovALL.provinsi.length(); i++){
namaProv[i] = XMLprovALL..nama_provinsi[i];
idProv[i] = XMLprovALL..id_provinsi[i];
cbProvSkrng.addItem({label: namaProv[i], data:idProv[i]});
}
cbProvSkrng.addEventListener(Event.CHANGE, cbProvSkrngHandler);
}
function cbProvSkrngHandler(e:Event):void{
idProvSkrng = ComboBox(e.target).selectedItem.data;
}
对于PHP:
<?php $xml = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n";
$xml .= "<data_provinsi>\n";
if (is_array($hasil)) {
foreach ($hasil as $baris) {
$xml .= "\t<provinsi>\n";
//$i = 0;
$xml .= "\t\t <nama_provinsi>" . $baris->nama_provinsi . "</nama_provinsi>\n";
$xml .= "\t\t <id_provinsi>" . $baris->Id_provinsi . "</id_provinsi>\n";
//$i++;
$xml .= "\t</provinsi>\n";
}
$xml .= "</data_provinsi>\n";
} else {
echo "kosong";
}
echo $xml; ?>
和xml如果我在浏览器中尝试它:
<?xml version="1.0" encoding="utf-8" ?>
<data_provinsi>
<provinsi>
<nama_provinsi>Aceh</nama_provinsi>
<id_provinsi>11</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Sumatera Utara</nama_provinsi>
<id_provinsi>12</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Sumatera Barat</nama_provinsi>
<id_provinsi>13</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Riau</nama_provinsi>
<id_provinsi>14</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Jambi</nama_provinsi>
<id_provinsi>15</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Sumatera Selatan</nama_provinsi>
<id_provinsi>16</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Bengkulu</nama_provinsi>
<id_provinsi>17</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Lampung</nama_provinsi>
<id_provinsi>18</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Kepulauan Bangka Belitung</nama_provinsi>
<id_provinsi>19</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Kepulauan Riau</nama_provinsi>
<id_provinsi>21</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Jakarta</nama_provinsi>
<id_provinsi>31</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Jawa Barat</nama_provinsi>
<id_provinsi>32</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Jawa Tengah</nama_provinsi>
<id_provinsi>33</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Yogyakarta</nama_provinsi>
<id_provinsi>34</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Jawa Timur</nama_provinsi>
<id_provinsi>35</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Banten</nama_provinsi>
<id_provinsi>36</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Bali</nama_provinsi>
<id_provinsi>51</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Nusa Tenggara Barat</nama_provinsi>
<id_provinsi>52</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Nusa Tenggara Timur</nama_provinsi>
<id_provinsi>53</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Kalimantan Barat</nama_provinsi>
<id_provinsi>61</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Kalimantan Tengah</nama_provinsi>
<id_provinsi>62</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Kalimantan Selatan</nama_provinsi>
<id_provinsi>63</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Kalimantan Timur</nama_provinsi>
<id_provinsi>64</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Sulawesi Utara</nama_provinsi>
<id_provinsi>71</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Sulawesi Tengah</nama_provinsi>
<id_provinsi>72</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Sulawesi Selatan</nama_provinsi>
<id_provinsi>73</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Sulawesi Tenggara</nama_provinsi>
<id_provinsi>74</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Gorontalo</nama_provinsi>
<id_provinsi>75</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Sulawesi Barat</nama_provinsi>
<id_provinsi>76</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Maluku</nama_provinsi>
<id_provinsi>81</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Maluku Utara</nama_provinsi>
<id_provinsi>82</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Papua Barat</nama_provinsi>
<id_provinsi>91</id_provinsi>
</provinsi>
<provinsi>
<nama_provinsi>Papua </nama_provinsi>
<id_provinsi>94</id_provinsi>
</provinsi>
</data_provinsi>
上面的代码有问题吗?我怎么能解决这个错误?
[新]更新:
我尝试修复PHP部分中的某些部分,并删除一些不包含在xml构造部分中的代码。然后我没有再次得到同样的错误(有时我会忘记之前已经改变过的部分)。基于此,我认为flash播放器沙箱没有问题。谢谢你的建议
答案 0 :(得分:0)
怀疑是这个问题。
尝试将结果存储在XMLList
中,而不是使用XML类 当您尝试将字符串转换为XML并且字符串本身是无效的XML时,会出现 TypeError: Error #1088: The markup in the document following the root element must be well-formed.
。
要使XML有效,它应该包含一个根节点,该根节点可能包含也可能不包含其他节点或仅包含文本。
而不是
XMLprovALL = new XML(e.target.data);
使用
var XMLprovALL:XMLList = new XMLList(e.target.data);