解析xml java时遇到错误

时间:2013-04-17 12:03:55

标签: xml-parsing jaxb saxparser

我正在尝试解析一个Xml文件,其中一个标签元素如下所示

126.5�105�15-4�45�-16MnCr5-1 

当我尝试使用jaxb进行解析并读取xml时,内容会变为如下所示

126.5 �— 105 �— 15-4�—45°-16MnCr5-1

我不知道为什么我使用unicode格式进行检查默认情况下它采用的是cp1252格式而不是UTF-8格式,即使我在xml中指定了kinldy help这里是读取xml传递的方法属性xml文件和jaxbclass映射

protected T readXml(File xmlFile, Class<?> clazz) throws JAXBException, IOException, XMLStreamException {
  JAXBContext jaxbContext = null;
  Unmarshaller unmarshaller = null;
  jaxbContext = JAXBContext.newInstance(clazz);
  unmarshaller = jaxbContext.createUnmarshaller();
  XMLInputFactory factory = XMLInputFactory.newInstance();
  XMLStreamReader streamReader = null;
  streamReader = factory.createXMLStreamReader(new FileReader(xmlFile));
  return (T) unmarshaller.unmarshal(streamReader);
}

1 个答案:

答案 0 :(得分:0)

尝试从文件中读取内容时传递编码。

streamReader = factory.createXMLStreamReader(new FileReader(xmlFile),"UTF-8");

应该修复它。