Notepad++取代問題(選定XML特定的行並把英文標點符號取代成中文標點符號)

大家好,請先看我以下貼的XML格式。

<Key ID="TEST_01">
<Original>Hey, how are you? I fine.</Original>
<Chinese>嘿, 你好嗎? 我很好.</Chinese>
</Key>
<Key ID="TEST_02">
<Original>Let's go party party all night! Oh, oh, oh.</Original>
<Chinese>讓我們今夜開始派對! 喔, 喔, 喔.</Chinese>
</Key>
.
.
.
.
.
.
一路往下



這個是我幫一款遊戲做中文化時會遇到的文字檔案格式,實際上的檔案非常大,這個是我縮寫的範例。之前我翻譯的時候我都把標點符號留成英文原本的(包括標點符號後的空白)。

但現在我想要幹的事情有兩個:

1.取代英文標點符號成中文標點符號。(,->, .->。這樣,但不取代到<Original>那列的標點符號,只要取代掉<Chinese>那列的即可)
2.移除每列<Chinese>字串中的所有空白,因為英文寫法跟中文不同,中文的句子可以不用留空白,我想先全部把空白弄掉,但只針對所有的<Chinese>列


我大概知道正則表達式或增強模式應該可以解這種問題,但我沒學過這個功能,想問問看有沒有大神可以幫忙講解一下這種問題的解法?
或是有更好的工具可以幫忙解決這種事情,感謝大家。

2017-12-25 0:03 發佈
a8325811 wrote:
我大概知道正則表達式或增強模式應該可以解這種問題...(恕刪)


如果格式是這麼固定的話,不需要用到正則
xml excel可以直接打開

在b1用函數(其它往下拉),最後再刪掉a欄就可以了
=IF(LEFT(A1,9)="<Chinese>",SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,",",","),".","。")," ",""),A1)


或 vba 也可以
Sub test()
For i = 1 To 8
If Left(Cells(i, 1), 9) = "<Chinese>" Then
Cells(i, 2) = Replace(Replace(Replace(Cells(i, 1), ".", "。"), ",", ","), " ", "")
Else
Cells(i, 2) = Cells(i, 1)
End If
Next i
End Sub

你好,我試著照你的方法用excel開xml,excel我先詢問我開啟的方式,我選擇XML表格,然後EXCEL會顯示出[指定的XML來源為參照到結構描述。Excel將會根據XML來源資料建立結構描述。],我按下確認後看到匯進來的資料會大亂。

而當我試著另存新檔成XML格式的檔案時,會出現[無法儲存或匯出XML資料。此活頁簿中的XML對應無法匯出。]

請問這樣如何解呢?

我在這邊附上其中一個完整的檔案給您試試看,看是不是可以取代完以後還能存成原本的XML格式?

麻煩大大了

OneDrive下載點

a8325811 wrote:
而當我試著另存新檔成XML格式的檔案時,會出現[無法儲存或匯出XML資料。此活頁簿中的XML對應無法匯出。]...(恕刪)


一、改成直接用筆記本 or notepad++ 打開,全選=>複製
二、到excel a1儲存格=>右鍵=>貼上
三、跑一次vba約0.3秒

Sub test()
ttt = Timer
For i = 1 To 5844
If InStr(Cells(i, 1), "<Chinese>") > 0 Then
Cells(i, 2) = " " & Replace(Replace(Replace(Cells(i, 1), ".", "。"), ",", ","), " ", "")
Else
Cells(i, 2) = Cells(i, 1)
End If
Next i
Debug.Print Timer - ttt
End Sub

四、刪除a欄,複製a欄(原b欄),回到筆記本 or notepad++ ,覆蓋貼上新資料


a8325811 wrote:
大家好,請先看我以...(恕刪)


好的,我先試試看,謝謝你的回覆

感謝大大,目前測試起來一切正常,感謝你提供的解法
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?