OVH Cloud OVH Cloud

plist et xml outils spécifiques ?

3 réponses
Avatar
pere.noel
je cherche à savoir s'il existe des outils spécifiques pour convertir
des plist "à la Apple" en xml + standard càd avec des attributs ?

(je connais plutil qui ne fait pas ce que je recherche d'après le man)

je regarde comment transformer ça avec une feuille xsl, mais ça rame
because les plist sont particulièrement verbeuses...


par exemple, je regarde Bookmarks.plist de Safari qui grosso-modo me
donne :

<plist version="1.0">
<dict>
<key>Children</key>
<array>
<dict>
[le contenu]
</dict>
""" </array>
<key>WebBookmarkFileVersion</key>
<string>1</string>
<key>WebBookmarkType</key>
<string>WebBookmarkTypeList</string>
<key>WebBookmarkUUID</key>
<string>Root</string>
</dict>
</plist>
"

et je souhaite obtenir en sortie qqc de l'ordre de :

<bookmarks>
<folder version="1" type="list" uuid="Root">
[le contenu dans le même style, avec deux éléments folder et url]
</folder>
</bookmarks>

note que, bien évidemment, je ne vous demande pas de me dire comment
faire en xsl, je sais faire mais je souhaite l'éviter s'il existe un
outil spécifique chez Apple... pour par exemple extraire la string "1"
qui est sous la clé "WebBookmarkFileVersion".

parce que, s'il existe un tel outil, il sera nécessairement + rapide
qu'une feuille xsl et xsltproc...
--
une bévue

3 réponses

Avatar
JLC
On 2006-03-02 11:47:40 +0100, (Une bévue) said:

je cherche à savoir s'il existe des outils spécifiques pour convertir
des plist "à la Apple" en xml + standard càd avec des attributs ?

(je connais plutil qui ne fait pas ce que je recherche d'après le man)

je regarde comment transformer ça avec une feuille xsl, mais ça rame
because les plist sont particulièrement verbeuses...


par exemple, je regarde Bookmarks.plist de Safari qui grosso-modo me
donne :

<plist version="1.0">
<dict>
<key>Children</key>
<array>
<dict>
[le contenu]
</dict>
""" </array>
<key>WebBookmarkFileVersion</key>
<string>1</string>
<key>WebBookmarkType</key>
<string>WebBookmarkTypeList</string>
<key>WebBookmarkUUID</key>
<string>Root</string>
</dict>
</plist>
"

et je souhaite obtenir en sortie qqc de l'ordre de :

<bookmarks>
<folder version="1" type="list" uuid="Root">
[le contenu dans le même style, avec deux éléments folder et url]
</folder>
</bookmarks>

note que, bien évidemment, je ne vous demande pas de me dire comment
faire en xsl, je sais faire mais je souhaite l'éviter s'il existe un
outil spécifique chez Apple... pour par exemple extraire la string "1"
qui est sous la clé "WebBookmarkFileVersion".

parce que, s'il existe un tel outil, il sera nécessairement + rapide
qu'une feuille xsl et xsltproc...


L'application Plist Editor qui s'installe avec les Developer Tools ou
Xcode Tools devrait le faire.
Il est recommandé de travailler à partir d'une copie du fichier .plist.

Avatar
pere.noel
Matt wrote:


Regarde du côté de defaults(1)


ouais, merci, je l'utilise déjà pour ce fichier, je trouve curieux qu'il
faille faire :

defaults read ... /path/to/Bookmarks

pour avoir le fichier sous la forme :

{
Children = (
{
Children = (
{
Children = (
{
Children = (
{
URIDictionary = {"" "http://www.bombich.com/software/ccc.html"; title = CCC; };


puis, après coup, faire un :

plutil -convert xml1 -o "#{plistIn}" -- "#{TMP_DIR}/safari-orig.txt

pour transformer le texte ci-dessus en (xml) plist...

j'ai peut-être loupé une rame de métro ???

car dans le folder idoine la Bookmarks.plist est en binary1, c'est moi
qui doit déconner j'essayerais directement plutil sur le fichier bin,
après déplacement d'une copie )))
--
une bévue

Avatar
pere.noel
JLC <jean-louis.coutenet(antispam)@wanadoo.fr> wrote:


L'application Plist Editor qui s'installe avec les Developer Tools ou
Xcode Tools devrait le faire.
Il est recommandé de travailler à partir d'une copie du fichier .plist.


ben là, oui, surtout que mon original et en binary1...

de plus je quitte Safari avant de tripatouiller...

merci pour l'info sur "Plist Editor" que je n'avais point vu dans mes
reps ;-)
--
une bévue