我目前正在研究一個需要對XML文件的部分進行HTML編碼的簡短SED腳本。該腳本目前看起來是這樣的:SED - XML文件中特定標記之間的HTML編碼
sed.exe "/<messageData>/,/<\/messageData>/ {/<messageData>/b;/<\/messageData>/b; s/</\</g; s/>/\>/g; }" %1 >%2
所以基本上,更換所有<和>與<和>,在和標籤之間。
這個腳本工作得很好用漂亮的印刷XML,即
<?xml version="1.0" encoding="ISO-8859-1"?>
<Messages>
<messageData>
<test>DATA</test>
</messageData>
</Messages>
出來作爲
<?xml version="1.0" encoding="ISO-8859-1"?>
<Messages>
<messageData>
<test>DATA</test>
</messageData>
</Messages>
這正是我需要的。我的問題是,我需要過程的文件是不是漂亮的印刷,一切都是單行線,就像這樣:
<?xml version="1.0" encoding="ISO-8859-1"?>
<Messages><messageData><test>DATA</test></messageData></Messages>
而與此格式,腳本不再工作。 是否可以修改我的腳本以使用兩種格式?
請注意,我不能影響輸出格式,並且SED是要使用的腳本引擎。
我想我可以創建另一個SED腳本,在文件中的每個>之後插入換行符,然後運行我現在創建的腳本。不過,我猜測這不會是非常有效的性能(每個文件兩遍)。
有什麼建議嗎?
問候 丹尼爾
你在這裏的研究是什麼告訴你關於sed和xml的內容?祝你好運。 – shellter
就像我在原帖中所說的那樣,使用SED或不使用SED並不是我的選擇。 – Daniel
@Daniel,然後告訴誰做出選擇。通常使用sed或regexps來處理XML是一個非常糟糕的主意。爲什麼存在特定於XML的工具是有原因的。 – svick