如何使用applescript解析格式为plist的变量中的文本内容?
我想提取苹果Mac上安装的应用程序的一些详细信息。我认为在一堆Mac电脑上运行它而不需要任何额外依赖项的最便携的方法是使用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示例都显示了将文件路径
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数据来手动删除它们