İşte xml dosyasından bir örnek biraz:
<array>
<dict>
<key>Name</key>
<string>Joe Smith</string>
<key>Type</key>
<string>Profile</string>
<key>Role</key>
<string>User</string>
<key>Some Number</key>
<integer>1</integer>
<key>Some Boolean</key>
<true/>
</dict>
</array>
Ben iki ayrı hedefleri var. İlk gibi görünecektir dict
düğümden bir dizi ayıklamak için:
[Name] => Joe Smith
[Type] => Profile
[Role] => User
[Some Number] => 1
[Some Boolean] => true
Bu boolean dahil olması çok önemli değil, böylece çok fazla karmaşıklık ekler eğer, ben değil sadece şimdi için başkalarıyla uğraşmak nasıl bilirdiniz.
Ikinci golü ben değerini değiştirmek böylece (<string>
, <integer>
, vb) değer düğümü seçmek mümkün değildir. Ben önceki anahtar öğesinin metin değerine göre seçmek gerekir biliyorum.
Ben şu XPath çalışması gerektiğini düşünüyorum:
//key[.=$keyname]/following-sibling[1]
Ama emin değilim.
Temelde, Apple kullanan bütün bu sistem XML çalışmak gerekiyordu nasıl benim anlayış mantıklı, ama tamamen aykırı görünüyor. Ben dünya koştu eğer, orijinal XML daha fazla gibi görünecektir:
<dict type="array">
<value key="Name" type="string">Joe Smith</value>
<value key="Type" type="string">Profile</value>
<value key="Role type="string">User</value>
<value key="Some Number" type="integer">1</value>
<value key="Some Boolean" type="boolean">true</value>
</dict>
Bu oldukça mantıklı beri bunu işleme bazı bariz bir şekilde eksik yaşıyorum ama, ben merak ediyorum.