Регулярное выражение для разбора XML в .net - PullRequest
6 голосов
/ 24 марта 2010

У меня есть следующая функция, которую я использую для удаления символов \ 04 и null из моего xmlString, но я не могу найти то, что мне нужно изменить, чтобы избежать удаления \ из моих конечных тегов. Это то, что я получаю, когда запускаю эту функцию

<ARR>20080625<ARR><DEP>20110606<DEP><PCIID>626783<PCIID><NOPAX>1<NOPAX><TG><TG><HASPREV>FALSE<HASPREV><HASSUCC>FALSE<HASSUCC>

Может ли кто-нибудь помочь мне выяснить, что мне нужно изменить в своем выражении, чтобы сохранить конечный тег как </tag>

Private Function CleanInput(ByVal inputXML As String) As String
    ' Note - This will perform better if you compile the Regex and use a reference to it.
    ' That assumes it will still be memory-resident the next time it is invoked.
    ' Replace invalid characters with empty strings.
    Return Regex.Replace(inputXML, "[^><\w\.@-]", "")
End Function

1 Ответ

4 голосов
/ 24 марта 2010
Private Function CleanInput(ByVal inputXML As String) As String
    Return Regex.Replace(inputXML, "[^/><\w\.@-]", "")
    ' --------------------------------^
End Function

Но поскольку ваша цель только удаляет \04 и \00, безопаснее ограничить замену только на них.

Private Function CleanInput(ByVal inputXML As String) As String
    Return Regex.Replace(inputXML, "[\4\0]", "")
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...