2016-05-03 17 views
0

Ich habe ein Word-Dokument mit einem MergeField die Namen "NBJ" hat
MergeFieldVerschiedene Namen in mergefield

I document.xml öffnen und ich fand

<w:instrText xml:space="preserve"> MERGEFIELD NB</w:instrText> 

Das Dokument funktioniert gut, aber ich verstehe nicht, warum ich nicht den gleichen Merge-Feldnamen habe?

Antwort

0

Die Feldcodierung kann in mehr als ein Element aufgeteilt werden. Wenn Sie also den XML-Code Ihres Dokuments erneut betrachten, werden Sie wahrscheinlich ein anderes Element finden, dessen Textinhalt mit "J" beginnt.

Wenn Sie sich mit der XML-Codierung in Word beschäftigen, müssen Sie im Allgemeinen beachten, dass Word häufig Texte in mehrere Teile aufteilt. Es ist sicherlich nicht immer offensichtlich, warum, aber zwei häufige Gründe sind:

  • Es gibt verschiedene Formatierungen für verschiedene Teile des Textes. Sie würde normalerweise nicht benötigen, oder das im Namen eines Seriendruckfelds, , aber zum Beispiel kann der erste "run" eines Feldcodes formatiert werden, weil jemand den * Charformat Feldschalter verwenden muss, um gelten Dieses Format auf das gesamte Feld Ergebnis
  • Änderung der Verfolgung hat aufgezeichnet, dass Sie einen Teil des Textes geändert/hinzugefügt/gelöscht haben.
+0

Es ist richtig, ich finde ein anderes Element mit "J". Aber ich parse "manuell" die document.xml um alle "MERGEFIELD" zu finden. Wie kann man die MERGEFIEL-Liste am besten erstellen? Oder wie kann ich die 2 Teile meines MERGEFIELD konsolidieren? – Joc02

+0

Nun, es ist nicht trivial (beispielsweise sind die instrText-Elemente keine untergeordneten Elemente eines einzelnen "Feld" -Elements. Word erlaubt auch Feldverschachtelung). Ich müsste das selbst von Grund auf ausarbeiten, daher denke ich, dass Sie es (a) etwas genauer erforschen sollten, schauen Sie sich das XML an und was Sie zum Beispiel mit XPath machen könnten, wenn Sie es noch können mach es nicht aus, poste deine Bemühungen und sieh nach, ob jemand helfen kann ... –

+0

@ Joc02 Ich würde vorschlagen, dass du eine Logik um die Vorkommen von "" und "< w: fldChar w: fldCharType = "Ende" /> ". Sie würden nach InstrText-Elementen innerhalb eines "begin" - "end" -Bereichs suchen. Sie sollten auch das Auftreten eines anderen "begin" innerhalb des "begin" berücksichtigen (die untergeordneten Feldelemente in den Inline-Anweisungen des übergeordneten Feldes. –