سؤال

لدي مستند Word 2003 محفوظ ك XML بتنسيق WordProcessingml. أنه يحتوي على عدد قليل من العناصر النائبة التي سيتم استبدالها ديناميكيا بمحتوى مناسب. لكن المشكلة هي أن الكلمة على ما يبدو ينقسمهم بشكل عشوائي في الكلمات المنفصلة. على سبيل المثال، بدلا من هذا:

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

لدي هذا:

...
<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>
...

هل هناك أي طريقة لحفظ مستند XML "نظيف" باستخدام Word 2003، أم أنه يوجد أي حل موجود يمكنه القيام بالتنظيف؟

حاولت برمجة طريقة في جافا التي ستسلسل أجزاء مفصولة من العناصر النائبة، ولكن نظرا لأن عدد مجموعات القطع المختلفة كبيرة نسبيا، فإن خوارزمية ذلك أكثر تعقيدا بكثير من المهمة الأصلية التي يجب أن أفعلها، لذلك مشكلة لنفسها.

هل كانت مفيدة؟

المحلول

يمكنك استخدام aspose.words واستدعاء هذا:

document.joinrunswithsameformatting.

http://www.aspose.com/documentation/.net-components/aspe.words-for-.net-and-java/aspose.words.document.joinrunswithsameformatting.html.

نصائح أخرى

إذا كانت لديك سيطرة على مستندات Word الأصلية، فيمكنك إيقاف Word من إدراج RSID وتسليط الضوء على أخطاء النحوية / الإملائية.

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

ستظل الكلمات تظل تقسيمها، إذا قمت بتغيير طريقة جزء الخط من خلال الكلمة.

هممم، لدي جزء بسيط + قبيح من XSLT الذي استخدمته لتنظيف WordML مثل المثال الذي نشرته. يمكنني ارتكابها إلى DocX4J إذا كنت تريد ذلك، ولكن كما تقول، هناك مجموعات مختلفة لن تكون مغطاة. على أي حال، إذا كنت تريد ذلك، يرجى المشاركة إلى منتدى DocX4J.

سيكون نهج أكثر قوة لاستخراج النص العادي، ويربط النص العادي إلى XML، حتى تتمكن من البحث في النص العادي، وتذهب من هناك إلى XML.

Word 2003 XML معقدة بشكل غير عادي وصعب فك التشفير. السبب في الحصول على علامات متعددة هو لأن Word ML ينشئ علامات يتم تشغيلها يعمل (The W: R Tag). بقدر ما أعرف، لا توجد طريقة سهلة للقيام بتنظيف XML أعلاه. أود أن أوصي باستخدام HTML بدلا من Wordml. إنها طريقة أسهل لمعالجة واستبدال العناصر النائبة الخاصة بك بالمحتوى المناسب. إذا كانت التكلفة ليست موضوعية، فاستخدم منتجا مثل ispose. يفعل كل شيء من أجلك وبسيط الاستخدام.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top