Как читать XML-теги и их данные, используя flex?
Мне нужно прочитать теги XML и его данные из одного файла, а затем записать его в другой XML.. Как это сделать?? пожалуйста, дайте мне знать немедленно...?
3 ответа
См. http://livedocs.adobe.com/flex/2/langref/XML.html. Мне трудно поверить, что ты погуглил это, прежде чем спросить.
Вы можете использовать метод FileReference.save() для сохранения данных XML в локальный файл. Он предложит пользователю указать место для сохранения файла, а затем сохранить данные.
Вот пример:
var xml:XML = <root><someXmlTag/></root>;
var fileReference:FileReference = new FileReference()
fileReference.save(xml, "myfile.xml");
Насколько я знал, Flex не мог писать в файлы!
Я использую HTTPService для загрузки XML-файла и обработчик результатов для доступа к нему.
<mx:HTTPService id="service" url="myXml.xml" result="ServiceResult (event)"/>
Не указывайте формат результата в теге HTTPService. Это код обработчика события результата.
private function ServiceResult (e : ResultEvent) : void {
e.result.XmlTag.AnotherXmlTag;
}
Вы также можете использовать service.lastResult для доступа к последнему результату, возвращенному HTTPService. Результат полностью совместим со свойством dataProvider, особенно в массивах и рядах диаграмм.
var series : LineSeries = new LineSeries ();
series.dataProvider = e.result.XmlTag.AnotherXmlTag;
Это будет принимать значение во всех тегах AnotherXmlTag в XmlTag. Для рядов, однако, вы также должны указать либо yField, либо и xField, но это отступает:-)
Если это не работает, вы также можете привести его, используя ключевое слово as, например:
series.dataProvider = e.result.XmlTag as ArrayCollection;
На самом деле я не пробовал приводить его в этом сценарии, но суть в том, что теги XML по-разному совместимы с массивами и ArrayCollections.
В вашем случае вы просто использовали бы e.result, чтобы получить полный XML-файл, назначить его переменной и записать его, используя метод Бена. Вы также можете создать массив из отдельных значений, как я объяснил выше, и вручную вставить теги и тому подобное, если вам нужно. Преимущество этого состоит в том, что у вас есть все значения, готовые в массиве, они понадобятся вам позже. Если вы перебираете индексы, это не потребует много работы, и я бы так и сделал.
Надеюсь это поможет!