2017-09-27 3 views
-1

Ich versuche XML in JSON mit Java zu analysieren. JSON.parse werfen diesen Fehler auf diesem Charakter: 
replaceAll funktioniert nicht auf Escapezeichen XML

JSON.parse: bad control character in string literal 

ich versuche, diese Zeichen zu ersetzen, bevor ich sie zu JSON.parse schicken, aber diese Zeile Code funktioniert nicht. Gibt es eine bessere Methode, diese Zeichen vollständig zu ersetzen/zu entfernen?

String trim = desc.replaceAll("
", "\\n"); 

XML

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod 
 
    tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim 
 
    veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea 
 
    commodo consequat. Duis aute irure dolor in reprehenderit in voluptate 
 
    velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint 
 
    occaecat cupidatat non proident, sunt in culpa qui officia deserunt 
 
    mollit anim id est laborum. 
+1

Java oder JavaScript? – Phix

+1

klar Java. Es gibt keine 'String trim =' in Javascript – ControlAltDel

+0

@Phix XML> Java> JavaScript –

Antwort

0

es herausgefunden:

public static String cleanDescription(String desc){ 

     String trim = desc.replaceAll("<.*?>", ""); //removes html elements 
     //there's a phantom question mark that sometimes gets added to the the front and end of the string 
     if(!Character.isLetter(trim.charAt(0))) trim = trim.substring(1, trim.length()); 

     Integer charCount = 0; 
     for(int j = 1; j <= 3; j++){ 
      if(!Character.isLetter(trim.charAt(trim.length() - j)) && 
        !Character.isDigit(trim.charAt(trim.length() - j))) charCount++; 
     } 
     if(charCount >= 2) trim = trim.substring(0, trim.length() - (charCount - 1)); 


     Pattern pt = Pattern.compile("[^a-zA-Z0-9()\\.\\,]"); 
     Matcher match= pt.matcher(trim); 
     while(match.find()) 
     { 
      String s = match.group(); 
      trim = trim.replaceAll("\\" + s, " "); 
     } 

     return trim.trim(); 
    } 
0

analysiert werden Wenn das Beispiel, das Sie enthält Eingabe die komplette XML gezeigt haben, die Sie haben, sind Parsen Sie nicht XML.

Angenommen, das ist ein Fragment. Ihre Lösung entkommt nur einer Sache, aber um gültige JSON zu erhalten, sollten Sie alle Zeichen, die in JSON nicht erlaubt sind oder die zu unerwünschtem Verhalten führen würden, entkernen. So wäre es eine gute Idee sein, um etwas zu suchen, das propperly JSON entweichen kann für Sie:

Java escape JSON String?