일부 유니 코드 문자로 XML 출력을 가져 오려고했습니다. 태그 안의 완전한 문자열을 읽을 수는 없지만 단지 하나만 읽을 수있었습니다.Java/Android에서 XML의 유니 코드 문자 읽기
여기 내 XML 출력
<item>
<id>1</id>
<name>ලොල්</name>
<cost>155</cost>
<description>ලො</description>
</item>
이 내가 XML 문자열을 구문 분석하는 데 사용하는 내 자바 코드입니다.
public Document getDomElement(String xml) {
Document doc = null;
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder db = dbf.newDocumentBuilder();
InputSource is = new InputSource();
is.setEncoding("UTF-16");
is.setCharacterStream(new StringReader(xml));
doc = db.parse(is);
} catch (ParserConfigurationException e) {
Log.e("Error: ", e.getMessage());
return null;
} catch (SAXException e) {
Log.e("Error: ", e.getMessage());
return null;
} catch (IOException e) {
Log.e("Error: ", e.getMessage());
return null;
}
// return DOM
return doc;
}
정상적인 영어 문자를 사용하면 완전한 문자열을 제공합니다. 유니 코드 명으로
영어 이외의 문자를 구문 분석하려고하면 어떻게됩니까? 문자열이 올바르지 않습니까? 아니면 실패합니까? – helios
실패하지 않습니다. 단지 첫 번째 문자 만 읽습니다. 이 예제에서는 & xdDBD 만 출력합니다. & # x0DDD; & # x0DDC; & # x0DBD; & # x0DCA; – Chrishan
오, 오케이. 하지만 두 가지 :'valueOfTheContainedText.length()'는 1 또는 4를 반환하고, xml은 구문 분석 전에 출력한다면, 맞습니까? – helios