2012-10-14 2 views
0

Java의 XMLStreamReader를 사용하여 거대한 (> 1GB) xml 파일을 구문 분석하려고합니다. getText() 메서드를 사용하여 노드의 내용을 가져옵니다. 내가 가지고있는 XML 파일은 ISO-8859-1로 인코딩되어 있으며 일부 문자는 특수 인코딩을 가지고 있습니다. 예를 들어 &은 파일에 &으로 인코딩되어 있습니다.Java XMLStreamReader.getText()는 XML로 인코딩 된 문자를 초크합니까?

그래서 파일 예를 들어, 포함되어있는 경우 :

<person>Jack</person> 
<person>Jill</person> 
<persons>Jack &amp; Jill</persons> 

그리고 gettext에를 사용하여 각 노드의 내용(), 3 노드는 Jack 반환을 얻을하려고합니다. &xxx; 문자를 만날 때마다 (동일한 노드에있는) 문자 뒤의 문자는 구문 분석되거나 반환되지 않습니다.

어디에 문제가 있습니까? XML 파일이 올바르게 인코딩 되었습니까? Java 구문 분석기를 올바르게 사용하고 있습니까?

감사합니다.

답변

2

파서가 3 인칭 요소의 내용을 다중 처리 이벤트로 분할 한 것으로 의심됩니다. next()의 동작은 documented입니다. getText()을 호출하면 현재 이벤트의 텍스트 만 제공됩니다.

대신 getElementText()을 사용해보세요.

+0

예, 문제의 근원 인 것 같습니다. 대단히 감사합니다! – The111

관련 문제