![]() |
|
||||||||||
|
|||||
|
Регистрация: May 2014
Сообщений: 29
|
Доброе время суток!
Хотелось бы узнать, как в ActionScript 3.0 наиболее простым способом можно сделать преобразование xml файлов? А именно, надо сделать, чтобы внутри каждого xml файла эти строки: <Account>42301810363229727150</Account> <Op_Date>01.04.1994</Op_Date> <Balance>151.12</Balance> <Data>
<ACC>
<External_Key>45356</External_Key>
<Account>42301810363229727150</Account>
<Op_Date>01.04.1994</Op_Date>
<Balance>151.12</Balance>
</ACC>
</Data>
Заранее спасибо ) |
|
|||||
|
Регистрация: Jan 2013
Сообщений: 322
|
Цитата:
Цитата:
|
|
|||||
|
Регистрация: Sep 2014
Сообщений: 4
|
Написать свой парсер.
В данном случае вы просто к началу и к концу строки прибавляете "<Data><ACC>" и "</ACC></Data>" соответственно. |
|
|||||
|
Регистрация: May 2014
Сообщений: 29
|
Цитата:
<External_Key>45356</External_Key> - можно счетчик, можно рандом, но надо добавлять будет. |
|
|||||
|
Регистрация: Jan 2008
Адрес: Земля
Сообщений: 178
|
Если архитектура всегда такая
<Account>42301810363229727150</Account> <Op_Date>01.04.1994</Op_Date> <Balance>151.12</Balance> Если External_Key неизменный (ну т.е. будет одно значение во всех объектах "<ACC>") |
|
|||||
var src:XML = <root> <Account>42301810363229727150</Account> <Op_Date>01.04.1994</Op_Date> <Balance>151.12</Balance> </root> var key:int = 1000 * Math.random(); var res:XML =<Data><ACC><External_Key>{key}</External_Key></ACC></Data>; for each(var node:XML in src.*) { res.ACC.appendChild(node); } trace( "src : " + src.toXMLString() ); trace( "res : " + res .toXMLString()); |
|
|||||
|
Регистрация: May 2014
Сообщений: 29
|
Спасибо, с преобразованием ХМЛ файла более менее понятно. Но теперь никак не могу сделать, чтобы файл сохранялся на диск C. Использовал пример с этого форума:
var file:File = File.desktopDirectory.resolvePath("C:\\1\save1.xml"); var fileStream:FileStream = new FileStream(); // создаем поток fileStream.open(file, FileMode.WRITE); // открываем файл в режиме записи fileStream.writeMultiByte(str, "Windows-1251"); // сохраняем эту строку fileStream.close(); // закрываем поток Но файл не создается в этой директории (а также директория тоже не создается). А если Flash Builder запускать не под администратором, то вообще ошибка выходит. как оказалось, создается файл на диске C с именем 1save1.xml, но мне надо, чтобы директория создавалась. Работает только сохранение на рабочий стол: var file:File = File.desktopDirectory.resolvePath("savedfile1.xml"); Но мне надо много файлов сохранять, рабочий стол не подходит для этого... Может, кто-нибудь знает, как сохранить файл на диск? Последний раз редактировалось AlexAS3; 17.09.2014 в 17:11. |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Цитата:
Если файлы нужны будут самому юзеру, используйте , чтобы юзер сам выбрал директорию в которой можно сохранять.
__________________
Отряд Котовскага |
|
|||||
|
Регистрация: May 2014
Сообщений: 29
|
Котяра, мне надо сохранять очень много фалов, каждый раз выбирать пользователю - это долго.
Но я, кажется, разобрался - надо было написать так: C://1/save1.xml и запустить под администратором. Сейчас директория создалась. |
|
|||||
|
Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
|
|
![]() |
![]() |
Часовой пояс GMT +4, время: 20:35. |
|
|
« Предыдущая тема | Следующая тема » |
|
|