Использование AppleScript для преобразования XML в CSV, нужна помощь в отладке - PullRequest
0 голосов
/ 04 апреля 2020

Несколько отредактированный контент из моего ввода (XML) и вывода (CSV):

Ввод (это экспортированные 9,8 МБ XML из LittleSecrets 1.9.4):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"      "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>LittleSecretsExportVersion</key>
    <string>1.9.4</string>
      <key>Secrets</key>
      <dict>
       <key>Children</key>
        <array>
          <dict>
            <key>Data</key>
            <data>
            cnRmZAAAAAADAAAAAgAAAAcAAABUWFQucnRmAQAAAC75
            BAAAKwAAAAEAAADxBAAAe1xydGYxXGFuc2lcYW5zaWNw
            ZzEyNTJcY29jb2FydGYxNjcxXGNvY29hc3VicnRmNjAw
            CntcZm9udHRibFxmMFxmc3dpc3NcZmNoYXJzZXQwIEhl
            -- ended here in this sample, this goes on
               for many lines and all children are below----

Вывод (это все содержимое итогового CSV-файла:

    key,string,key,dict
    LittleSecretsExportVersion,1.9.4,Secrets,missing value

Я знаю, что есть и другие методы (например, с использованием XSLT), но большинство из них слишком далеко над моей головой, так как я не программист, просто (в основном) способный следовать инструкциям. В моем случае, я думаю, AppleScript (я пользователь Ma c), вероятно, самый простой метод для меня, мне просто нужна помощь, чтобы выяснить, почему скрипт, который я нашел, не ' t работает.

У меня есть приложение, из которого мне нужно экспортировать все данные в новое приложение, к сожалению, старое приложение может экспортировать только в формате XML, и все записи зашифрованы (это очень старый пароль Хранение приложения, которое должно быть перенесено в приложение с новым паролем. Существуют тысячи записей (потому что в нем хранится больше, чем просто пароли), что делает перенос вручную слишком обременительным.

Пока Новое приложение для паролей может принимать. xml файлы в качестве импорта, оно принимает только свои специально отформатированные XML, поэтому фактически не обрабатывает файл, экспортированный из старой программы (он говорит " сделано "но данные не импортируются). Он также МОЖЕТ принимать общие файлы c .csv, поэтому моя задача - преобразовать зашифрованный файл XML в файл CSV.

Поскольку данные являются конфиденциальными, я не могу использовать онлайн-конвертер. Я нашел AppleScript, который кто-то другой написал и разместил здесь по этой ссылке, но он не работает.

https://macscripter.net/viewtopic.php?id=37025

В частности, эта строка не нравится Automater:

write csvText to fRef as «class utf8»

Я не смог найти достаточно информация о том, как написать AppleScript, чтобы узнать, что не так с этой строкой ... Я мог бы догадаться, но, не зная AppleScript, я не думаю, что это хорошая идея.

Я нашел здесь другой скрипт, но он тоже не работает.

https://discussions.apple.com/thread/7178543?answerId=28761630022#28761630022

(здесь я также нашел ссылку выше). Эта ошибка просто возвращает ошибку «Ошибка: выполняется операция» и создает файл нулевого байта.

Я был бы глубоко признателен за любую помощь в отладке того, что их вызывает, или в предоставлении AppleScript, который я могу скопировать и вставить в Automator, который будет работать, или в предложении другого метода, который не -Программисты, как я.

...