2010-03-24 20 views
6

Ich habe die folgende Funktion, die ich die Zeichen \ 04 und nulls von meinem xmlString zu entfernen benutzen, aber ich kann nicht finden, was brauche ich, um zu vermeiden, zu ändern, zu entfernen die \ von meinen Endtags. Dies ist, was ich bekomme, wenn ich diese Funktion zu startenRegulärer Ausdruck xml in .net zu analysieren

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

Kann jemand mir helfen, herauszufinden, was muss ich in meinem Gesichtsausdruck ändern, um die End-Tag als </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

Dies entfernt nicht ' '\ 0'' und'' \ 04'' Zeichen aus der Zeichenfolge, sondern entfernt alles außer ein paar Zeichen ('' <', '>, Leerzeichen, '.',' @ ' und '-'). Welche Eingabe gibt die Ausgabe, die Sie erwähnen? – Thomas

+0

Können Sie eine oder zwei Zeilen wie die Eingabe für diese Funktion aussehen? –

+0

@Thomas, '\ w' ist ein Wortzeichen, kein Whitespace. – Joel

Antwort

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

Aber da Ihr Ziel nur die \04 und \00 's entfernt, ist es sicherer, den Ersatz nur auf ihnen zu beschränken.

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

Vielen Dank! jeder für deine Eingabe. Ich erhalte jetzt ein sauberes XML. – Tony