ملء البيانات والوصول إليها من كائن قيمة
-
01-10-2019 - |
سؤال
لدي مشكلة في تحميل البيانات والوصول إليها من كائن قيمة في مشروعي الجديد .. أقوم بتحميل ملف XML عبر خدمة ، والذي يحتوي على عنوان ومواقع ملفات الأصول ، أحتاج إلى الوصول إلى موقع ملف الأصول من خلال تحديد العنوان وإرهاقه من كائن قيمة .. أنا أستخدم إطار Robotlegs ، إليك مثال على XML:
<?xml version="1.0" encoding="utf-8" ?>
<files id ="xmlroot">
<file title="css_shell" location = "css/shell.css" />
<file title="xml_shell" location = "xml/shell.xml" />
<file title="test" location= "test/location/test.jpg" />
<file title ="shell_background_image" location = "images/shell_images/background_image.jpg" />
</files>
ثم أدفع هذه البيانات إلى كائن قيمة كجسم قاموس .. آمل
//----------- populate value objects ------------------------------------
var xml:XML = new XML(xml);
var files:XMLList = xml.files.file;
for each (var file:XML in files) {
var filePathVO:DataVO = new FilePathVO( file.@title.toString(),
file.location.toString()
);
filePathModel.locationList.push(filePathVO);
filePathModel.locationHash[filePathVO.title] = filePathVO;
}
لقد اختبرت الوصول إلى هذا من مكون العرض.
// accessing from another class -----------------
var _background_image_path:String = String( filePathModel.locationHash['shell_background_image']);
يعود غير محدد .. أي أفكار؟
المحلول
لقد نسيت @
لسمة الموقع على هذا الخط:
var filePathVO:DataVO = new FilePathVO(file.@title.toString(),
file.location.toString());
تكمن المشكلة الحقيقية على الخط:
var files:XMLList = xml.files.file;
تغييره إلى
var files:XMLList = xml.file;
ال xml
يشير المتغير إلى علامة الجذر لـ XML ؛ ليست هناك حاجة للوصول إليها بشكل صريح مع xml.files
. xml.files.file
في الواقع يبحث عن file
العلامات التي هي أطفال مباشرون files
العلامات التي هي أطفال مباشرون لعلامة Root-XML. كان من شأنه أن يعمل لو كان XML الخاص بك شيء مثل:
<?xml version="1.0" encoding="utf-8" ?>
<root>
<files id ="xmlroot">
<file title="css_shell" location = "css/shell.css" />
<file title="xml_shell" location = "xml/shell.xml" />
<file title="test" location= "test/location/test.jpg" />
<file title ="shell_background_image" location = "images/shell_images/background_image.jpg" />
</files>
</root>