XML XPath для шаблона строки ключа - PullRequest
0 голосов
/ 30 июня 2018

У меня есть XML-файл, как показано ниже

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
    <dict>
        <key>CFBundleExecutable</key>
        <string>p4v</string>
        <key>CFBundlePackageType</key>
        <string>APPL</string>
        <key>CFBundleShortVersionString</key>
        <string>2018.2</string>
        <key>CFBundleVersion</key>
        <string>2018.2/1666551</string>
        <key>CFBundleGetInfoString</key>
        <string>2018.2, Copyright 2018 Perforce Software, Inc.</string>
        <key>CFBundleIconFile</key>
        <string>application.icns</string>
        <key>P4RevString</key>
        <string>P4V/MACOSX1013X86_64/2018.2/1666551 (2018/05/30)</string>
        <key>NSPrincipalClass</key>
        <string>NSApplication</string>
        <key>NSHighResolutionCapable</key>
        <string>True</string>
        <key>CFBundleName</key>
        <string>P4V</string>
        <key>CFBundleSignature</key>
        <string>P4VC</string>
        <key>CFBundleIdentifier</key>
        <string>com.perforce.p4v</string>
    </dict>
</plist>

Я хочу получить строковое значение 2018.2 для ключа CFBundleShortVersionString

Каким должен быть XPath для этого.

Я пытался

/plist/dict[starts-with(key,'CFBundleShortVersionString')]/string

но это не сработало.

1 Ответ

0 голосов
/ 30 июня 2018

Попробуйте этот XPath:

/plist/dict/key[text()='CFBundleShortVersionString']/following-sibling::string[1]/text()

Его результат 2018.2.

...