我試圖解析從使用PowerShell文件下面的XML,而無需使用[XML],因爲該文件包含錯誤實際加載它作爲XML文檔。Powershell的正則表達式替換XML標記值
<data>
<company>Walter & Cooper</company>
<contact_name>Patrick O'Brian</contact_name>
</data>
要順利加載的文件,我需要通過更換特殊字符來修復錯誤如下
& with &
< with <
' with ' etc..
我知道我可以做這樣的事情來查找和替換文檔中的文字
(Get-Content $fileName) | Foreach-Object {
$_-replace '&', '&' `
-replace "'", "'" `
-replace '"', '"'} | Set-Content $fileName
但是,這將在文件中到處替換字符,我只關心像<公司檢查XML標籤內的字符並用xml安全實體替換它們,以便生成的文本是可以使用[xml]加載的有效文檔。
謝謝,這項工作很好,但在符號值內出現任何特殊字符的角落情況下也會出現< and >符號。故障測試案例&*>「<'_ @ –
Raj
2013-05-10 18:01:06
@Raj - 對於符號''< >你可以做一個積極的外觀,背後有一個非字字符'\ W',然後用一個捕獲組繼續積極的展望,我已經更新了答案/例子。 – 2013-05-10 23:31:08