2012-09-07 2 views
0

문자열을 org.w3c.dom.Element로 파싱 할 때 예외가 발생합니다. 내가 요소에 문자열을 변환하는 데 사용한문자열을 org.w3c.dom.Element로 변환하는 중에 발생하는 문제

org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 245; Invalid byte 3 of 3-byte UTF-8 sequence. 

코드는 다음과 같습니다

public Element convertStringToDoc(String xmlString) throws Exception{ 
    org.w3c.dom.Document doc; 
    try { 
     java.io.InputStream sbis = new java.io.StringBufferInputStream(xmlString); 
     javax.xml.parsers.DocumentBuilderFactory b = javax.xml.parsers.DocumentBuilderFactory.newInstance(); 
     b.setNamespaceAware(false); 
     doc = null; 
     javax.xml.parsers.DocumentBuilder db = null; 
     db = b.newDocumentBuilder(); 
     doc = db.parse(sbis); 
     org.w3c.dom.Element e = doc.getDocumentElement(); 
     return e; 
    } catch (Exception e1) { 
     throw e1; 

} }

내 입력 문자열은 다음과 같습니다 제 생각에는

<?xml version="1.0" encoding="UTF-8"?> 
<a id="ctl00_RSContent1_ResultsList_ctl00_ProductTitleLink" href="../Product/the_western_european_wear_tear_parts_market_201115?productid=TD00033-006">The Western European Wear &amp; Tear Parts Market, 2011–15</a> 

답변

1

Java String 클래스는 UTF-8로 인코딩되지 않습니다. 그것은 "â €" "시퀀스가 자바 문자열 유니 코드 UTF - 8에서 허용되지 않는 바이트 코딩을 가지고있는 것 같습니다. 이런 식으로 코드를 변경하십시오 ...

... 
byte[] utf8Bytes=xmlString.getBytes("UTF-8"); 
java.io.InputStream sbis = new java.io.ByteArrayInputStream(utf8Bytes); 
javax.xml.parsers.DocumentBuilderFactory b = javax.xml.parsers.DocumentBuilderFactory.newInstance(); 
... 
+0

감사합니다. – pbhle

관련 문제