extrahieren Ich möchte Plist XML-Dateien über xmlstartlet
abfragen. Ich bin auf der Suche nach dem Text eines string
Tag gerade nach ein einzigartiges key
Tag. Die XML-Datei kann wie folgt aussehenIn Plist Dateien, wie Zeichenfolge Text nach eindeutigen Schlüssel-Tag über Xmlstarlet Tool
<?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">
<dict>
<key>BuildMachineOSBuild</key>
<string>15B42</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleIconFile</key>
<string>AppIcon</string>
.
.
.
</dict>
</plist>
oder
<?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">
<othertag>
<dict>
<key>BuildMachineOSBuild</key>
<string>15B42</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleIconFile</key>
<string>AppIcon</string>
.
.
.
</dict>
</othertag>
</plist>
Auf jeden Fall, dass ich einen Weg nach zum Beispiel den String-Wert suchen der Schlüssel CFBundleDevelopmentRegion
(in diesem Fall en
).
So ist die Stelle in der Hierarchie, wo das Diktat auftritt, unbekannt (es kann /plist/dict
oder /plist/another/dict
oder woanders sein), aber der Schlusstext ist einzigartig in der ganzen Datei.
Ich habe
versuchtxmlstarlet sel -t -v '//string/following::key[text()="CFBundleDevelopmentRegion"]' myfile.plist
aber ich bekomme keine Ausgabe. Ist mein XPath falsch oder muss ich andere Parameter für xmlstarlet
angeben?
Diese Arbeit perfekt! – halloleo