2010-05-04 6 views
1

Je suis en train de convertir une conversation téléchargée de Wikipedia en XML. J'ai utilisé l'exportation spéciale pour obtenir la page au format XML ... cela fonctionne très bien jusqu'à ce que j'arrive à la conversation principale.convertir en XML

<conversation> 
    {{PersonA|Cheese}} 
    {{PersonB|I like it too...}} 
    {{PersonA|Cheese?}} 
</conversation> 

Cest pas la vraie conversation ... De toute façon, je me demande ce qui est la meilleure façon de convertir une conversation MASSIVE comme ça en XML valide?

<conversation> 
    <personA>Cheese</personA> 
    <personB>I like it too...</personB> 
    <personA>Cheese?</personA> 
</conversation> 

Merci, c'est beaucoup trop long pour le faire manuellement. Je suppose que regex peut aider ... en quelque sorte.

+0

Est-ce que chaque ligne commence par {{{PersonA | 'ou' {{PersonB | '? – Skilldrick

+0

Oui. ils semblent tous commencer comme ça ... la seule autre exception est {{Action | –

Répondre

2

Motif:

\{\{(.*?)\|(.*?)\}\} 

Remplacer:

<$1>$2</$1> 

Ceci est une solution simple qui conviendra à votre échantillon, mais selon le format exact, une expression plus complexe peut être nécessaire. Par exemple, que se passe-t-il si un nom contient un tuyau? Que faire si le texte contient deux crochets de fermeture? Le texte peut-il s'étendre sur plusieurs lignes?

+0

Merci Max, je vais essayer ... J'ai donc besoin d'un éditeur de texte spécial pour effectuer cette action? De même, comment sont définies les variables $ 1 et $ 2? –

+0

Vous avez besoin d'un éditeur de texte qui prend en charge les expressions régulières. Je suppose que la plupart d'entre eux le font maintenant, mais vous devrez dire à la commande search/replace de les utiliser. '$ 1' (souvent aussi écrit' \ 1') est une référence arrière, contenant ce qui correspond au premier ensemble de parenthèses. –

+0

Merci pour toute l'aide les gars ... m'a sauvé quelques heures de travail: P –