如何使用applescript解析格式为plist的变量中的文本内容?

如何使用applescript解析格式为plist的变量中的文本内容?,applescript,plist,Applescript,Plist,我想提取苹果Mac上安装的应用程序的一些详细信息。我认为在一堆Mac电脑上运行它而不需要任何额外依赖项的最便携的方法是使用Applescript 我可以通过运行以下命令以plist格式获取包含已安装应用程序的变量: set theAppsList to do shell script "system_profiler SPApplicationsDataType -xml" 但是我找不到方法告诉Applescript将此文本作为plist进行解析。所有记录在案的plist示例都显示了将文件路径

我想提取苹果Mac上安装的应用程序的一些详细信息。我认为在一堆Mac电脑上运行它而不需要任何额外依赖项的最便携的方法是使用Applescript

我可以通过运行以下命令以plist格式获取包含已安装应用程序的变量:

set theAppsList to do shell script "system_profiler SPApplicationsDataType -xml"
但是我找不到方法告诉Applescript将此文本作为plist进行解析。所有记录在案的plist示例都显示了将文件路径传递到以下格式的Applescript:

tell application "System Events" to tell property list file thePropertyListFilePath to ....
但是如何将从shell脚本接收的原始plist文本作为plist对象进行处理呢?是否存在伪代码的等价物:

myPlist = new property list (theAppsList)

这将在内存中创建一个新的plist对象?

将数据视为XML数据,AppleScript可以将其解析为存储在变量中的文本数据。以下是我运行
do shell脚本时在系统上返回的部分文本数据
行:

    <?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\">
    <array>
        <dict>
            <key>_SPCommandLineArguments</key>
                    .
                    .
                    .
            <key>_items</key>
            <array> --> ① 
                <dict> --> ② 
                    <key>_name</key>
                    <string>Little Snitch Software Update</string> --> ③ 
                    .
                    .
                    .

我相信
XML数据
对象在大约5分钟的空闲时间后就会从内存中消失。否则,您可以使用
delete XML data“AppData”
手动删除它们,或者
delete every XML data

将数据视为XML数据,AppleScript可以将其解析为存储在变量中的文本数据。以下是我运行
do shell脚本时在系统上返回的部分文本数据
行:

    <?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\">
    <array>
        <dict>
            <key>_SPCommandLineArguments</key>
                    .
                    .
                    .
            <key>_items</key>
            <array> --> ① 
                <dict> --> ② 
                    <key>_name</key>
                    <string>Little Snitch Software Update</string> --> ③ 
                    .
                    .
                    .
我相信
XML数据
对象在大约5分钟的空闲时间后就会从内存中消失。否则,您可以使用
删除XML数据“AppData”
删除每个XML数据来手动删除它们