J'ai des fichiers de modèles de mots (dot/dotx) qui contiennent des balises XML avec du texte brut.
Lors de l'exécution, je dois remplacer les balises xml par leurs champs de fusion et publipostage respectifs.Regex ou XML Parser C#
Donc, besoin d'analyser le document pour ces balises xml et les remplacer par des champs de fusion. J'utilisais Regex pour trouver et remplacer ces balises xml. Mais il m'a été suggéré d'utiliser XML parser pour analyser les balises XML ([Regex for string enclosed in <*>, C#]).
Le document exemple ressemble à:
Solicitor Letter
<Tfirm/>
<Tbuilding/>
<TstreetNumber/> <TstreetName/>
For the attention of: <TContact1/> <TEmail/>
Dear <TContact1/>
RE: <Pbuilding/> <PstreetNumber/> <PstreetName/> <Pvillage/> <PTown/>
We were pleased to hear that contracts have now been exchanged in the sale of the
above property on behalf of our mutual client/s. We now have pleasure in enclosing a
copy of our invoice for your kind attention upon completion.
....
Une note plus, les crochets sont saisis manuellement par l'utilisateur final dans le modèle.
J'ai essayé d'utiliser XMLReader, mais j'ai eu des erreurs car mes documents ne possèdent pas de racine root.
S'il vous plaît guide si je devrais rester à Regex ou est-il possible d'utiliser XML Parser.
Merci!
Il y a des gens ici qui pensent un analyseur XML doit être utilisé pour tout tâche qui a quelque chose qui ressemble vaguement à XML en elle. Ignore les. Lorsque votre marteau est un analyseur XML, tout ce qui a des parenthèses inclinées ressemble à un clou. –
Les gens ont suggéré un analyseur XML quand ce que vous aviez ressemblé à XML. Mais ici, nous voyons toute l'histoire, et (a) n'est pas XML, et (b) est une langue régulière. Donc une regex sonne bien. – Ken
Est-ce juste moi, ou est-ce que cette lettre se lit comme un de ces courriels de phishing/spam/escroquerie? "Nous sommes heureux d'entendre ..."? "Votre aimable attention"? Quel bureau du gouvernement ou entreprise communique comme ça? Mettez votre propre nom et adresse à la place des marqueurs, et cela ressemble exactement aux messages électroniques que vous recevez pour vous informer que vous avez gagné la loterie britannique. – Cheeso