Question

J'ai un document Word 2003 enregistré en tant que XML au format WordProcessingML. Il contient quelques mots clés qui seront dynamiquement remplacé par un contenu approprié. Mais, le problème est que la Parole apparemment les divise au hasard dans les mots séparés. Par exemple, au lieu de ceci:

<w:t>${dl.d.out.ecs_rev}</w:t>

J'ai ceci:

...
<w:t>${</w:t>
 </w:r>
 <w:r wsp:rsidR="005D11C0">
  <w:rPr>
   <w:sz w:val="20" />
   <w:sz-cs w:val="20" />
  </w:rPr>
  <w:t>dl.</w:t>
 </w:r>
<w:r wsp:rsidRPr="00696324">
 <w:rPr>
  <w:sz w:val="20" />
  <w:sz-cs w:val="20" />
 </w:rPr>
<w:t>d.out.ecs_rev}</w:t>
...

Est-il possible d'enregistrer un document XML « propre » en utilisant Word 2003, ou est-il une solution existante qui peut faire le ménage?

J'ai essayé de programmer une méthode en Java qui concaténer séparés parties des espaces réservés, mais parce que le nombre de combinaisons différentes de coupe est relativement grande, l'algorithme pour ce qui est beaucoup plus complexe que d'une tâche originale que je dois faire, il est donc problème pour lui-même.

Était-ce utile?

La solution

Autres conseils

Si vous avez le contrôle sur les documents Word d'origine, vous pouvez vous arrêter Mot d'insérer rsid et mettant en évidence des erreurs de grammaire / orthographe.

         Word.Options opts = Word.Options;
            opts.CheckGrammarAsYouType = false;
            opts.CheckGrammarWithSpelling = false;
            opts.CheckSpellingAsYouType = false;
            opts.StoreRSIDOnSave = false;

Les mots toujours obtenir Split, par exemple si vous changez en partie la police par le mot.

Hmmm, je simple + peu moche de xslt que je l'ai utilisé pour nettoyer WordML comme l'exemple que vous avez publié. Je pourrais commets à docx4j si vous le voulez, mais comme vous le dites, il y a diverses combinaisons qui ne seraient pas couvertes. Quoi qu'il en soit, si vous le voulez, s'il vous plaît poster au forum docx4j.

Une approche plus robuste serait d'extraire le texte brut, et relier le texte brut du XML, de sorte que vous pouvez rechercher le texte brut, et aller de là à XML.

Word 2003 XML est particulièrement complexe et difficile à décoder. La raison pour laquelle vous obtenez plusieurs balises est parce que Word ML génère des balises appelées pistes (le w: tag r). Pour autant que je sache, il n'y a pas moyen facile de faire le nettoyage du XML ci-dessus. Je recommande en HTML au lieu de WordML. Il est beaucoup plus facile à manipuler et remplacer vos espaces réservés par le contenu approprié. Si le coût est pas un objectif, utiliser un produit comme Aspose. Il fait tout pour vous et est simple à utiliser.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top