2012-12-04 4 views
-1

.xlsx 파일에서 일부 문자열을 가져옵니다 (문자열은 단순 문자 임). 그런 다음 해당 문자열을 .xml 파일에 넣으려고합니다. 하지만 불행히도, 내가 'createElement (StringVariableHere)'메서드에 문자열을 넣을 때 다음 오류가 발생합니다 : "org.w3c.dom.DOMException : INVALID_CHARACTER_ERR : 잘못된 또는 잘못된 XML 문자가 지정되었습니다."엑셀 파일에서 .xml 파일로 문자열을 가져 오는 중 오류가 발생했습니다.

나는 이런 식으로 문자열 값을 얻을 :

switch (tempCell.getCellType()) { 
    case Cell.CELL_TYPE_STRING: 
    String tempColValue = tempCell.getStringCellValue(); 
} 

을 그리고 이것은 내가 내 문자열 값을 추가 할 선이며 나에게 오류를 제공합니다.

Element titleChild = doc.createElement(StringVariableHere); 

나는 심지어 내가 온라인으로 볼 수있는 다음과 같은 방법을 사용하여 문자열을 청소하려고 : 내가가 유효한지 아닌지를 확인하려면 다음을 사용하고 또한

public String stripNonValidXMLCharacters(String in) { 
    StringBuffer out = new StringBuffer(); // Used to hold the output. 
    char current; // Used to reference the current character. 

    if (in == null || ("".equals(in))) return ""; // vacancy test. 
    for (int i = 0; i < in.length(); i++) { 
     current = in.charAt(i); // NOTE: No IndexOutOfBoundsException caught here; it should not happen. 
     if ((current == 0x9) || 
      (current == 0xA) || 
      (current == 0xD) || 
      ((current >= 0x20) && (current <= 0xD7FF)) || 
      ((current >= 0xE000) && (current <= 0xFFFD)) || 
      ((current >= 0x10000) && (current <= 0x10FFFF))) 
      out.append(current); 
    } 
    return out.toString(); 
} 

을 때, 그리고 내가 내 문자열을 추가 false를 반환합니다.

XMLChar.isValidName(StringVariableHere) 

시간 내 주셔서 감사합니다. 스테파노 스.

+0

그래서 질문은 무엇인가? – djechlin

답변

1

자바에서 얻을 수있는 문자열을 살펴 보았습니까? 그것을 콘솔 등에 인쇄할까요?

Office 문서를 구문 분석 한 비슷한 문제가 떠오릅니다. 파서 (apache POI)는 XML을 깨뜨린 잘못된 문자를 유니 코드에 제공하기도합니다 (한 가지 예는 줄 바꿈이 포함 된 경우).

사용중인 파서를 모르지만 xml을 채우기 전에 문자열을 정리해야 할 수 있습니다.

추가 된 세부 사항 뒤에 편집하십시오.

어떤 종류의 XML을 작성 하시겠습니까? 예제를 제공해 줄 수 있습니까? doc.createElement (StringVariableHere)는 StringVariableHere라는 요소를 만들려고합니다. I.E.

<StringVariableHere>there could be something here</StringVariableHere> 

하지

<aRandomTag>StringVariableHere</aRandomTag> 
+0

감사합니다. 예, 콘솔에 인쇄 했으므로 제대로 작동합니다. 또한 나는 같은 파서 (아파치 POI)를 사용하고 있습니다. 나는 xml 문자열을 청소하기 위해 온라인에서 찾은 방법 위에 게시했습니다 ... – Stefanos

+0

나는 내 대답을 편집했습니다. 나는 그것이 틀린 xml 부분이라고 생각합니다 ... – florent

+0

당신의 도움에 감사드립니다! 태그의 내용이 아닌 태그의 내용으로 XML에 문자열을 쓰려고했습니다. 효과가 있습니다. 그러나 끝에는 다음 문자가 있습니다. 의미와 의미를 알 수 있습니까? – Stefanos

관련 문제