2011-11-15 3 views
1

& 문자를 구문 분석하려고 할 때 SAX 구문 분석에 문제가 있습니다. 다른 모든 특수 문자는 SAX 파서에서 자동으로 구문 분석되지만 문자는 & 문자입니다. anyone pls 나에게 뭔가 제안 ??'&'문자를 SAX로 구문화

첫째로 나는 문자열로 웹 서비스에서 오는 내 XML을 절약하고

 if(ques_xml.contains("&")) 
    { 
       ques_xml=ques_xml.replaceAll("&", "&"); 
    } 

//로 옆에 그것을 측면을 확인하고 다음과 같은 방법은 내 저장된 XML을 구문 분석하는 데 사용하고 있어요. 공공 무효 XmlParsing (문자열 questions_xml) { 시도 {

 /** Handling XML */ 
     SAXParserFactory spf = SAXParserFactory.newInstance(); 
     SAXParser sp = spf.newSAXParser(); 
     XMLReader xr = sp.getXMLReader(); 

     /** Create handler to handle XML Tags (extends DefaultHandler) */ 
     MyXmlHandler myXMLHandler = new MyXmlHandler(); 
     xr.setContentHandler(myXMLHandler); 
     xr.parse(new InputSource(new StringReader(questions_xml))); 


     } catch (Exception e) { 
      String err = (e.getMessage()==null)?"XMLParsing exception":e.getMessage(); 
      Log.e("XMLParsing Exception",err); 
     } 


} 
+0

무엇이 문제입니까? '&'가 누락 되었습니까? 예외가 발생합니까? – Kerry

+0

아니요 문제는 문자열과 같습니다 : "hello & world", 구문 분석 후 다음과 같이 표시됩니다. hello – Kanika

+0

anyyyone plssssss – Kanika

답변

2

특수 기호의 문제 (&) 구문 분석 SAX 파서를 사용하여 항상있다, 나는이 유일한 것은 당신을 도울 수 있다고 생각 Handling Special Characters

편집 :

많은 특수 문자가 포함 된 큰 XML 블록이나 HTML 블록을 처리하는 경우 CDATA section을 사용할 수 있습니다. CDATA 섹션은 HTML에서 <code>...</code>처럼 작동합니다. CDATA 섹션의 모든 공백은 중요하며 그 안에있는 문자는 XML로 해석되지 않습니다. CDATA 섹션은로 시작합니다.

2

이 경우 StringBuffer를 사용할 수 있습니다.

startElement에서 StringBuffer를 초기화하십시오.

public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { 
     //reset 
     buffer = new StringBuffer(); 
.... 
} 

그런 다음 문자를 StringBuffer에 추가하면됩니다.

public void characters(char[] ch, int start, int length) throws SAXException { 
     buffer.append(new String(ch,start,length)); 
    } 

그리고 마지막으로이 StringBuffer를 endElement에 사용하십시오.

public void endElement(String uri, String localName, String qName) throws SAXException { 
     // use StringBuffer's object buffer here 
} 

이것은 반드시 작동합니다.

+0

이것은 나를 위해 일했다 –

+0

고마워, 나를 도왔다. – Tony

관련 문제