`
sulifeng
  • 浏览: 40012 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

java读取xml文件出现问题

    博客分类:
  • Java
阅读更多
已知某xml文件格式大致如下:

<?xml version="1.0" encoding="UTF-8"?>
<main version='2'>
<item IsFolder="0" name="TWaver中文社区 » 想知道心中的她/他/它在哪里吗?" addtime="2010-09-04 11:55:00">http://twaver.servasoft.com/?p=1907</item>
<item IsFolder="0" name="TWaver中文社区 » TWaver GIS" addtime="2010-09-04 12:22:38">http://twaver.servasoft.com/?cat=100</item>
</main>


读取的程序如下:
import java.io.File;
import java.util.Properties;

import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

public class Xml {
	public static void main(String[] args) {

		try {
			DocumentBuilderFactory factory = DocumentBuilderFactory
					.newInstance();
			DocumentBuilder builder = factory.newDocumentBuilder();

			Document document = builder.parse(new File("1.xml"));

			Element rootElement = document.getDocumentElement();

			NodeList list = rootElement.getElementsByTagName("item");   //以item为标记进行读取

			for (int i = 0; i < list.getLength(); i++) {

				Element element1 = (Element) list.item(i);

				String result = i
						+ 1
						+ "__"
						+ element1.getAttribute("name")
						+ "__"
						+ element1.getAttribute("IsFolder")
						+ "__"
						+ element1.getChildNodes().item(0).getNodeValue()
								.toString();

				// getAttribute("name") 用于获得name属性

				// getAttribute("IsFolder") 用于获得IsFolder属性
				System.out.println(result);

			}

		} catch (Exception e) {
			System.out.println(e.getMessage());
		}
	}
}




输出结果如下:
1__TWaver中文社区 ? 想知道心中的她/他/它在哪里吗?__0__http://twaver.servasoft.com/?p=1907
2__TWaver中文社区 ? TWaver GIS__0__http://twaver.servasoft.com/?cat=100


很奇怪,中文已经能正常输出了,但那个貌似是书名号的东西却变成成了问号.

分享到:
评论
3 楼 sulifeng 2010-09-11  
将输出结果在对话框和控制台同时输出, 会发现对话框里的文字显示正常,而控制台确实乱码...说明控制台编码出了什么问题;
JOptionPane.showMessageDialog(null, result);
System.out.println(result);
2 楼 sulifeng 2010-09-11  
代码在英文j2ee专用版Eclipse里,以及英文MyEclipse里已经能正确运行;
但在我的中文版Eclipse 3.2里仍然是乱码;
1 楼 sulifeng 2010-09-11  
问题解决了....
1.尽量不要使用中文版的Eclipse;
2.将Window(窗口)->Preferences(首选项)->General(常规)->Workspace(工作空间)里的Text file Encoding(文本文件编码)改成"UTF-8"; 
3.在IDE里点击xml资源文件,右键查看属性,确定其编码为UTF-8;

相关推荐

Global site tag (gtag.js) - Google Analytics