2016-08-11 2 views
0

documentbuilder를 사용하여 아래 내용을 구문 분석하려고합니다.xml java를 구문 분석하는 중 예외가 발생했습니다.

<html> 
<head> 
<meta charset="utf-8" /> 
<title>Test</title> 
</head> 
<body> 
<img height="" src="google.gif?<>" /> 
</body> 
</html> 

src에는 <을 포함 할 수 없으므로 구문 분석 중에 예외가 발생합니다. xsl을 적용 할 때이를 구문 분석해야합니다. 할 방법이 있습니까? 지금은 문서 작성기를 사용하여 구문 분석을 취소하고 다시 이스케이프 처리합니다.

위의 xml을 데이터베이스에서 String 형식으로 가져옵니다. 이제 documentbuilder를 사용하여 파싱을 시도 할 때 src에 <을 포함 할 수 없다는 예외가 발생합니다. StringEscapeUtils.EscapeHTML을 사용하여 이스케이프 처리를 시도했지만 전체 문자열을 eascaping하고 다시 documentBuildet을 파싱 할 수 없습니다. HTml에서 src를 파싱하는 방법을 알려 주시길 바랍니다. -

+0

이 XML 인코딩 [링크] (http://stackoverflow.com/questions/7818928/how-to-encode-symbols-in-xml) – Karthik

+1

XML 파서에 도움이 될 것입니다 거기에 XML을 구문 분석 할 수 있습니다. 이 입력은 XML이 아닙니다. 당신은 그것을 고쳐야 할 것입니다. –

답변

4

이러한 기호 <>은 XML의 태그에 사용되는 미리 정의 된 요소입니다. 특별한 표기법을 사용해야합니다. Wikipedia에 대한 자세한 내용을 읽어보십시오.

  • &gt;위한 >
  • &lt;위한 <
  • &quot;위한 "
  • &apos;위한 '
  • &amp;위한 &

Y 우리의 코드는 결국 다음과 같습니다

<img height="" src="google.gif?&lt;&gt;" /> 
+0

구문 분석하고 싶습니다 < > – user3287034

+0

위의 html을 데이터베이스에서 String 형식으로 검색하고 있습니다. 이제 documentbuilder를 사용하여 파싱을 시도 할 때 src에 <를 포함 할 수 없다는 예외가 발생했습니다. StringEscapeUtils.EscapeHTML을 사용하여 이스케이프 처리를 시도했지만 전체 문자열을 eascaping하고 다시 documentBuildet을 파싱 할 수 없습니다. HTml에서 src를 파싱하는 방법을 알려 주시길 바랍니다. – user3287034

+0

aboce로 바꾸면 다음과 같은 예외가 발생합니다. org.xml.sax.SAXParseException : 프롤로그에서 참조가 허용되지 않습니다. – user3287034

관련 문제