2010-03-24 13 views
6

में xml पार्स करने के लिए मेरे पास है निम्नलिखित समारोह है कि मैं \ मेरी xmlString से 04 और nulls लेकिन मैं क्या मैं दूर करने से बचने के लिए बदलने की जरूरत भी नहीं पा सकते हैं पात्रों को दूर करने का उपयोग कर रहा मेरे अंत टैग से \। यह मैं क्या मिलता है जब मैं इस समारोह को चलानेनियमित अभिव्यक्ति .net

<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\[email protected]]", "") 
End Function 
+0

इस को नहीं निकालता है ' '\ 0'' और'' \ 04'' अपने स्ट्रिंग से पात्रों, बल्कि कुछ वर्ण के अलावा सब कुछ को हटा ('<', '>', खाली स्थान के, '.',' '@ और '-')। साथ ही, इनपुट क्या है जो आपके द्वारा उल्लेख किए जाने वाले आउटपुट को देता है? – Thomas

+0

क्या आप इस फ़ंक्शन में इनपुट की एक पंक्ति या दो पोस्ट कर सकते हैं? –

+0

@ थॉमस, '\ w' शब्द वर्ण हैं, सफेद जगह नहीं। – Joel

उत्तर

4
Private Function CleanInput(ByVal inputXML As String) As String 
    Return Regex.Replace(inputXML, "[^/><\w\[email protected]]", "") 
    ' --------------------------------^ 
End Function 
समाप्त होने टैग रखने के लिए मेरी अभिव्यक्ति में बदलने की जरूरत है मदद कर सकते हैं

लेकिन चूंकि आपका लक्ष्य केवल \04 और \00 को हटा रहा है, केवल उन पर प्रतिस्थापन प्रतिबंधित करना सुरक्षित है।

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

धन्यवाद एक गुच्छा! आपके इनपुट के लिए सब लोग। मुझे अब एक साफ एक्सएमएल मिल रहा है। – Tony

संबंधित मुद्दे