我有一个相当简单的 plist XML。它看起来像这样:
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>cast</key>
<array>
<dict>
<key>name</key>
<string>Michael Boatman</string>
</dict>
<dict>
<key>name</key>
<string>Dillon Casey</string>
</dict>
</array>
<key>directors</key>
<array>
<dict>
<key>name</key>
<string>Jace Alexander</string>
</dict>
</array>
</dict>
</plist>
所以 XML 包含两名演员和一名导演。我的 XPATH 表达式是这样的:
"/plist/dict[key='directors']/array/dict/string/text()"
此表达式获取所有三个记录。为什么会这样?我尝试了许多更复杂的表达式(如 dict/key[name()='director']/../),但结果总是相同。当我查询“导演”或“演员”时,它获取三条记录,当我查询另一个字符串时,它获取零条记录。