2013-11-14 2 views
0

입력 문자열에 "CDR 2324-5 No Compatibilit 頩 nt. nж06 .... tri 饠 par prodkjdl"이 포함되어 있습니다.xercesc에서 중국어 문자를 올바르게 구문 분석하지 못하고 적절한 종료 태그가없는 xml 태그를 생성하지 않습니다.

예상 XML은 다음과 같습니다 나는 XML로 문자열을 삽입하기 위해 다음과 같은 기능을 사용하고

<param> 
<name>comments</name> 
<value>CDR 2324-5 No Compatibilit頩nt. nж06....tri饠par prodkjdl</value> 
</param> 

. '값이' 'CDR 2324-5 없음 Compatibilit 頩 NT. nж06 .... 트라이 饠 파 prodkjdl이 "

DOM_Text newNode = document.createTextNode(""); 
newNode.setNodeValue((const sChar*) value); 
element.appendChild(newNode); 

.

XML은의 끝 부분이없고 으로 생성됩니다. 난 다음 모든 작업을 잘하는 3 개 한자를 제거하면 나는

Error: The input ended before all started tags were ended. Last tag started was 'param'.

, 오류 메시지가 다음되었다.

것은 내가

XERCES_VERSION_MAJOR 2 
XERCES_VERSION_MINOR 5 

같은 일이 윈도우 머신에서 잘 작동, XercesVersion.hpp에서 촬영 리눅스 RHEL (62)
xercesc 버전입니다 사용하고 있습니다.
나는 더 이상 사용되지 않는 버전이나 기능을 사용할 것으로 생각합니다. 그러나 나는 확실하지 않다.

제안 사항을 알려주십시오.

+0

값을 SChar * 대신 DOMString으로 변환하여이 문제를 해결했습니다. – thanga

답변

0

이 문제가 해결되어 sChar *에서 중국어 문자를 처리 할 수 ​​없었습니다. 문자열을 DOMString으로 변환했습니다. 이제 모든 것이 잘 작동합니다.

DOMString val = DOMString(value.c_str()); 
DOM_Text newNode = document.createTextNode(""); 
newNode.setNodeValue(val); 
element.appendChild(newNode); 

이제 적절한 태그 끝이 보입니다.