您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Java >> 如何在java里面更新xml文件的信息?为什么新增图书会出现中文乱码?

如何在java里面更新xml文件的信息?为什么新增图书会出现中文乱码?

来源:网络整理     时间:2016/6/20 21:21:23     关键词:

关于网友提出的“ 如何在java里面更新xml文件的信息?为什么新增图书会出现中文乱码?”问题疑问,本网通过在网上对“ 如何在java里面更新xml文件的信息?为什么新增图书会出现中文乱码?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 如何在java里面更新xml文件的信息?为什么新增图书会出现中文乱码?
描述:

javaxml编码乱码

        /**
 * 新增图书
 */
public void saveBook(Book book){
//1、生成新图书编号,并赋值给图书对象
int newId = books.get(books.size()-1).getId()+1;
book.setId(newId);
//2、根据XML文件结构生成图书节点字符串
String newBookStr = book.toString();
//3、读取XML文件流,并转换成字符串格式
String strXML = readFileContent("src/Books.xml");
//4、将图书节点字符串追加到原XML文件后
int iIndex = strXML.indexOf("");//获取标签索引值
if(iIndex > -1){
StringBuffer sb = new StringBuffer(strXML.substring(0,iIndex));
sb.append(newBookStr);
sb.append("");
//5、保存追加后的XML文件
boolean flag = createXML("src/Books.xml",sb.toString());
//6、将新增的图书添加到集合中
if(flag){
books.add(book);
}
}
}
        /**
 * 更新XML中的库存信息
 * @param book
 */
public void updateXML(Book book){//修改XMl文件的方法
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db;
try {
db = dbf.newDocumentBuilder();
Document doc = db.parse("src/Books.xml");
NodeList list = doc.getElementsByTagName("book");//获取标签名为book的所有节点列表
for(int i=0;i<>
if(list.item(i).getNodeType() == 1){
Element tagNameBigElement = (Element) list.item(i);
Node node = tagNameBigElement.getElementsByTagName("id").item(0);//id节点
if(node.getTextContent().equals(""+book.getId())){
tagNameBigElement.getElementsByTagName("store").item(0).setTextContent(""+book.getStore());
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource domSource = new DOMSource(doc);
//设置编码类型
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");//Java编程中更新XML的方法-OutputKeys类
StreamResult result = new StreamResult(new FileOutputStream("src/Books.xml"));
//把DOM树转化为xml文件
transformer.transform(domSource, result);
}
}
}
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
解决方案1:

是否是没改为:UTF-8?

解决方案2:

看一下字符编码和字符集的相关API,乱码问题通常都是这些因素造成的。


以上介绍了“ 如何在java里面更新xml文件的信息?为什么新增图书会出现中文乱码?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/1832102.html

相关图片

相关文章