2 回答

TA貢獻1772條經(jīng)驗 獲得超6個贊
將此 XML 作為字符串讀取并執(zhí)行正則表達式替換是否適合您?喜歡:
Regex nullMatch = new Regex("<(.+?)_\\(NULL\\)(.+?)>");
String processedXmlString = nullMatch.Replace(originalXmlString, "<$1_BAD$2>");

TA貢獻1829條經(jīng)驗 獲得超6個贊
通常,正則表達式不是處理 XML 文件的正確方式。有一系列正確處理 XML 文件的解決方案 - 您可以繼續(xù)閱讀System.Xml.Linq以獲得良好的開端。如果你是一個新手,這當然是你應該在某個時候?qū)W習的東西。但是,正如 Ed Plunkett 在評論中指出的那樣,您的 XML 實際上并不是 XML:(并且)XML 元素名稱中不允許使用字符。
由于您必須將其作為對字符串的操作來執(zhí)行,因此要使用 Corak 的注釋
contentOfXml.Replace("(NULL)", "BAD");
可能是個好主意,但如果任何元素可以包含字符串(NULL)作為其名稱以外的任何內(nèi)容,則會中斷。
如果你想要一個正則表達式方法,這可能會很好地工作,但我不確定它是否沒有遺漏任何邊緣情況:
var regex = new Regex(@"(<\/?[^_]*_)\(NULL\)([^>]*>)");
var result = regex.Replace(contentOfXml, "$1BAD$2");
- 2 回答
- 0 關注
- 298 瀏覽
添加回答
舉報