在 perl 中使用 XPath 读取 Mac Plist 布尔值
Posted
技术标签:
【中文标题】在 perl 中使用 XPath 读取 Mac Plist 布尔值【英文标题】:Using XPath in perl to read Mac Plist booleans 【发布时间】:2013-07-03 18:36:11 【问题描述】:我有一个 PLIST,它在转换为 XML 时有这样的片段;
<dict>
<key>application-identifier</key>
<string>com.something.application</string>
<key>get-task-allow</key>
<false/>
<key>keychain-access-groups</key>
<array>
<string>random.*</string>
</array>
</dict>
我正在使用 perl XML::XPath 来读取此内容,并且可以轻松获取应用程序标识符;
my $app_id = $xp->findvalue('//key[text()="application-identifier"]/following-sibling::*[1]');
但我一直在阅读 get-task-allow 的值。例如,这似乎不起作用;
my $gettask = $xp->findvalue('//key[text()="get-task-allow"]/following-sibling::*[1]');
任何人都可以协助使用正确的 XPath 搜索表达式来读取
【问题讨论】:
【参考方案1】:你想要一个节点
my ($gettask) = $xp->findnodes(
'//key[text()="get-task-allow"]/following-sibling::*[1]');
say $gettask->nodeName();
【讨论】:
【参考方案2】:啊哈......所以下面至少表明我在正确的地方;
$xp->findnodes_as_string('//key[text()="get-task-allow"]/following-sibling::*[1];
【讨论】:
以上是关于在 perl 中使用 XPath 读取 Mac Plist 布尔值的主要内容,如果未能解决你的问题,请参考以下文章