雖然被JSON搶了風頭,但XML仍舊非常重要。看得見的,看不見的,XML在很廣泛的領域對我們發揮着影響。
修改XML文件,是我經常遇到的事情。方式從手動在Visual Studio或者Notepad++中修改,到利用Xslt處理,到利用PowerShell處理,最后到利用C#處理。准備時間越短的,處理時間越長;反之亦然。
Notepad++自然是可以直接查找替換,但是這完全是個體力活。
Xslt處理在改變文檔結構、元素順序方面是高手。它除了輸出XML外,還經常輸出HTML和Text文件。
PowerShell處理XML文檔的優點是,你看到的始終是一棵DOM樹。可以隨意修改元素和屬性值。此外可以利用.Net框架類使它在很細的粒度上處理很復雜的邏輯。這一點上它幾乎等同於C#。
C#相對於PowerShell來說,優勢和劣勢都很明顯。劣勢是它只在調試狀態下才能看到DOM樹。優勢是可以利用LINQ,以及它在處理大量數據時的效率。熟悉數據庫而已不熟悉XPath的童鞋會習慣於以類似SQL的方式來處理XML。此外,當要處理的文檔數目超過1000個或者單個文檔的大小大於100M的時候,C#會比PowerShell的處理速度快百倍千倍。
童鞋們可以按圖索驥啦。