Simplifier/ Nettoyer XML d'un document word DOCX
J'ai un Document Microsoft Word (docx) et j'utilise Open XML SDK 2.0 Outil de Productivité pour générer du code C#.
Je veux insérer par programmation de certaines valeurs de base de données pour le document.
Pour cela, j'ai tapé dans du texte simple comme [[place de titulaire 1]] dans les points de mon programme doit remplacer les espaces réservés à ses valeurs de base de données.
Malheureusement la sortie XML est dans une sorte de désordre. E. g. J'ai une table avec deux cellules voisines, qui ne devrait pas distinguer en dehors de son espace réservé. Mais l'un des espaces réservés est divisé
dans plusieurs passages.
[[bon endroit titulaire]]
<w:tc xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
<w:tcPr>
<w:tcW w:w="1798" w:type="dxa" />
<w:shd w:val="clear" w:color="auto" w:fill="auto" />
</w:tcPr>
<w:p w:rsidRPr="008C2E16" w:rsidR="001F54BF" w:rsidP="000D7B67" w:rsidRDefault="0009453E">
<w:pPr>
<w:spacing w:after="0" w:line="240" w:lineRule="auto" />
<w:rPr>
<w:rFonts w:cstheme="minorHAnsi" />
<w:sz w:val="20" />
<w:szCs w:val="20" />
</w:rPr>
</w:pPr>
<w:r w:rsidRPr="0009453E">
<w:rPr>
<w:rFonts w:cstheme="minorHAnsi" />
<w:sz w:val="20" />
<w:szCs w:val="20" />
</w:rPr>
<w:t>[[good place holder]]</w:t>
</w:r>
</w:p>
</w:tc>
contre [[mauvaise place de titulaire]]
<w:tc xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
<w:tcPr>
<w:tcW w:w="1799" w:type="dxa" />
<w:shd w:val="clear" w:color="auto" w:fill="auto" />
</w:tcPr>
<w:p w:rsidRPr="008C2E16" w:rsidR="001F54BF" w:rsidP="000D7B67" w:rsidRDefault="00EA211A">
<w:pPr>
<w:spacing w:after="0" w:line="240" w:lineRule="auto" />
<w:rPr>
<w:rFonts w:cstheme="minorHAnsi" />
<w:sz w:val="20" />
<w:szCs w:val="20" />
</w:rPr>
</w:pPr>
<w:r w:rsidRPr="00EA211A">
<w:rPr>
<w:rFonts w:cstheme="minorHAnsi" />
<w:sz w:val="20" />
<w:szCs w:val="20" />
</w:rPr>
<w:t>[[</w:t>
</w:r>
<w:proofErr w:type="spellStart" />
<w:r w:rsidRPr="00EA211A">
<w:rPr>
<w:rFonts w:cstheme="minorHAnsi" />
<w:sz w:val="20" />
<w:szCs w:val="20" />
</w:rPr>
<w:t>bad</w:t>
</w:r>
<w:proofErr w:type="spellEnd" />
<w:r w:rsidRPr="00EA211A">
<w:rPr>
<w:rFonts w:cstheme="minorHAnsi" />
<w:sz w:val="20" />
<w:szCs w:val="20" />
</w:rPr>
<w:t xml:space="preserve"> place holder]]</w:t>
</w:r>
</w:p>
</w:tc>
Est-il possible de laisser Microsoft Word nettoyer mon document, de sorte que tous les détenteurs de place sont bonnes à identifier dans le code XML généré?
OriginalL'auteur K B | 2011-10-13
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé une solution: l'Open XML PowerTools Balisage Simplifier.
J'ai suivi les étapes décrites à http://ericwhite.com/blog/2011/03/09/getting-started-with-open-xml-powertools-markup-simplifier/, mais il ne fonctionne pas 1:1 (peut-être parce que c'est maintenant la version 2.2 d'Outils électriques?). Donc, j'ai compilé PowerTools 2.2 en mode "Release" et fait référence à la OpenXmlPowerTools.dll dans mon TestMarkupSimplifier.csproj. Dans le cadre du Programme.cs j'ai seulement changé le chemin d'accès à mon fichier DOCX.
J'ai couru le programme une fois et mon document semble être assez propre maintenant.
Code cité par Eric du blog dans le lien ci-dessus:
OriginalL'auteur K B
Je ne sais pas d'un moyen de nettoyage de l'XML, mais j'ai toujours utilisé des
#placeholder
pour mon texte de l'espace réservé et qui semble rester dans une série plus que tout autre texte de l'espace réservé, j'ai essayé dans le passé. Il semble que plus le texte de l'espace réservé, plus il est susceptible d'être divisé en plusieurs pistes.OriginalL'auteur amurra
Vous avez besoin de se débarrasser de la Rsid de l'information. Selon cette page Rsid informations
Vous avez besoin d'installer pour exécuter l'exemple de code ci-dessous. La façon la plus simple de le faire est d'exécuter la ligne suivante dans le Gestionnaire de paquets de la Console
Alors vous serez tous ensemble pour exécuter le code suivant. (En supposant que vous avez déjà un "Test.docx" fichier ajouté à votre document. Si vous utilisez Visual Studio, vous devez vous assurer que vous avez une copie du fichier dans le Debug ou Release dossier en fonction de votre mode de construction.)
Cela permettra d'éliminer Rsid informations qui peuvent obtenir de la manière dans le processus de manipulation de fichiers Word.
OriginalL'auteur Amadeus Sánchez
Pour ceux qui recherchent manuel non-solution de programmation:
http://www.translationtribulations.com/2010/06/cleaning-up-superfluous-tags-in-docx.html
Que j'ai testé qui essai gratuit de memoQ 2014 peut en effet être utilisé comme un encombrant solution de contournement pour le nettoyage Mot sort des balises.
Toujours à la recherche d'une facilité de prêt-dehors-de-le-boîte à outil.
OriginalL'auteur Vadzim