2008-08-04 25 views
11

L'extension de fichier .XFDL identifie XFDL Fichiers de document formaté. Ils appartiennent à la norme de formatage de document et de modèle XML. Ce format est exactement comme le format de fichier XML mais contient un niveau de cryptage à utiliser dans les communications sécurisées.Comment puis-je modifier les fichiers .xfdl? (Mise à jour n ° 1)

Je sais comment afficher les fichiers XFDL en utilisant une visionneuse de fichiers que j'ai trouvé here. Je peux également modifier et enregistrer ces fichiers en faisant Fichier: Enregistrer/Enregistrer sous. Je voudrais cependant modifier ces fichiers à la volée. Aucune suggestion? Est-ce seulement possible?

Mise à jour 1: J'ai maintenant décodé et décompressé avec succès un .xfdl dans un fichier XML que je peux ensuite modifier. Maintenant, je suis à la recherche d'un moyen de ré-encoder le fichier XML modifié dans base64-gzip (en utilisant Ruby ou la ligne de commande)

Répondre

4

Si l'encodage est base64 alors c'est la solution que je suis tombé sur sur le web link.

« décodage fichiers XDFL enregistrés avec 'encoding = base64' fichiers enregistrés avec:

application/vnd.xfdl;content-encoding="base64-gzip" 

sont simples fichiers gzip base64-Ils peuvent être facilement restaurées en XML en premier. décodage, puis les décompresser.Cela peut être fait comme suit sur Ubuntu :

sudo apt-get install uudeview uudeview -i yourform.xfdl gunzip -S "" <UNKNOWN.001> yourform-unpacked.xfdl 

La première commande va installer uudeview, un package qui peut décoder base64, entre autres. Vous pouvez ignorer cette étape une fois qu'il est installé.

En supposant que votre formulaire est enregistré en tant que 'yourform.xfdl', la commande uudeview décode le contenu en tant que 'UNKNOWN.001', car le fichier xfdl ne contient pas de nom de fichier. L'option '-i' rend uudeview non interactif, supprimez cette option pour plus de contrôle.

La dernière commande gunzips le fichier décodé dans un fichier nommé 'yourform-unpacked.xfdl'. "

Une autre solution possible - here

Side Note: Bloc cité Code <> ne fonctionne pas pour les longues chaînes de code

+0

Drôle comment même après 6 ans je trouve cela sur SO et ça va rendre ma vie tellement plus facile. – Deryck

2

La seule réponse que je peux penser est en ce moment - lire le manuel pour uudeview

Autant que je voudrais vous aider, je ne suis pas un expert dans ce domaine, donc vous devrez attendre quelqu'un de plus compétent à venir ici et vous aider.

En attendant, je peux vous donner des liens vers des documents qui pourraient vous aider:

Désolé si cela ne vous aide pas.

1

Vous ne devez pas sortir de Ruby pour ce faire, peut utiliser le module base64 Ruby pour coder le document comme celui-ci:

irb(main):005:0> require 'base64' 
=> true 

irb(main):007:0> Base64.encode64("Hello World") 
=> "SGVsbG8gV29ybGQ=\n" 

irb(main):008:0> Base64.decode64("SGVsbG8gV29ybGQ=\n") 
=> "Hello World" 

Et vous pouvez appeler gzip/gunzip en utilisant le système # noyau :

system("gzip foo.something") 
system("gunzip foo.something.gz")