2010-03-24 41 views
6

Tôi có chức năng sau mà tôi đang sử dụng để xóa các ký tự \ 04nulls từ xmlString của mình nhưng tôi không thể tìm thấy những gì cần thay đổi để tránh xóa \ từ thẻ kết thúc của tôi. Đây là những gì tôi nhận được khi tôi chạy chức năng nàyBiểu thức chính quy để phân tích cú pháp xml trong .net

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

Ai có thể giúp tôi tìm hiểu những gì tôi cần phải thay đổi trong biểu hiện của tôi để giữ thẻ kết thúc như </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\[email protected]]", "") 
End Function 
+0

này không loại bỏ ' '\ 0'' và'' \ 04'' ký tự từ chuỗi của bạn, mà là loại bỏ tất cả mọi thứ, ngoại trừ một vài ký tự ('<', '>', khoảng trắng, '.',' @ ' và '-'). Ngoài ra, đầu vào cung cấp cho đầu ra mà bạn đề cập là gì? – Thomas

+0

Bạn có thể đăng một hoặc hai dòng đầu vào cho chức năng này như thế nào? –

+0

@Thomas, '\ w' là các ký tự từ, không phải khoảng trắng. – Joel

Trả lời

4
Private Function CleanInput(ByVal inputXML As String) As String 
    Return Regex.Replace(inputXML, "[^/><\w\[email protected]]", "") 
    ' --------------------------------^ 
End Function 

Nhưng vì mục tiêu của bạn chỉ xóa \04\00 nên an toàn hơn để hạn chế thay thế trên chúng.

Private Function CleanInput(ByVal inputXML As String) As String 
    Return Regex.Replace(inputXML, "[\4\0]", "") 
End Function 
+0

Cảm ơn một nhóm! tất cả mọi người cho đầu vào của bạn. Tôi đang nhận được một XML sạch bây giờ. – Tony

Các vấn đề liên quan