2010-08-31 89 views
4

我正在根據客戶輸入在xml中生成一個Word文檔,並且當使用&時,它當然會爆炸。我試圖用&替換&的所有實例,但是然後&字面上顯示在我的Word文檔中。這裏是我的代碼:如何獲取Word 2007 .docx XML文件中的一個&符號?

 static String replace(String in) { 
      String ampersand = "&(?![a-zA-Z][a-zA-Z][a-zA-Z]?[a-zA-Z]?;)"; 
      return in.replaceAll(ampersand,"&"); 
     } 

任何想法?

+0

如何使用代碼?你如何生成XML? – SLaks 2010-08-31 22:15:46

+0

我只是有一個作爲模板的docx文檔,其中一些字符串作爲佔位符,我用給定字符串的用戶替換。 – John 2010-08-31 22:22:54

+0

爲什麼不更換&&&?我認爲&必須是一個事物的分隔符。 – Dave 2010-11-10 14:09:35

回答

0

您是否試過用&&(unicode)替換「&」符號?

+0

我剛剛嘗試過這兩種,但都沒有爲我工作。 – John 2010-09-01 10:20:26

0

Word 2007本身確實是&,所以你的問題一定是別的。

0

你的正則表達式對我來說似乎不對。爲什麼你不這樣做:

static String replace(String in) { 
     return in.replace("&","&"); 
    } 
+0

因爲如果我兩次調用該函數,我會得到& amp; – John 2010-11-12 01:43:36

+0

Okey,讓我們考慮你只需要調用一次,它會工作嗎?在這種情況下,你只能使用錯誤的正則表達式。 – Daniel 2010-11-12 13:01:02

1

問題是,&符號在TOC和標題中以不同的方式轉義。

在TOC中,它被轉義爲&,而標題中的轉義爲\u0026

解決辦法是在TOC和標題不同的逃生符號:

  • TOC:HTML轉義序列
  • TITLE:Unicode轉義序列。
相關問題