如何解析这样的XML文件---菜鸟求助

深圳之光 2013-08-23 09:38:11
<city name=beijing mnv=014 cyh=421 date="MM-DD-YY" time=12/>
<city name=shanghai mnv=024 cyh=011 date="MM-DD-YY" time=24/>
<city name=hena mnv=014 cyh=421 date="MM-DD-YY" time=12/>

..............................

因为是在安卓设备中,所以应该用PULL解析吧。
肯定要定义一个City的属性类。用来封装这些信息。
关键是如何解析是这个XML呢?这个返回值要是一个List或者Map集合,因为后面要获取到mnv和chy的值和其他地获取的值进行比较。
try {

//定义工厂 XmlPullParserFactory
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();

//定义解析器 XmlPullParser
XmlPullParser parser = factory.newPullParser();

//获取xml输入数据
parser.setInput(inputstream);

//开始解析事件
int eventType = parser.getEventType();



下面该 怎么写??????
...全文
195 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
深圳之光 2014-06-01
  • 打赏
  • 举报
回复
其实是要经常 BaseHandler 这样一个类,我会把代码发到我的博客上。需要的去看我博客
evangelionxb 2013-08-23
  • 打赏
  • 举报
回复
还是用正则来解析吧

public class CityReader {
	
	private List<City> list = new ArrayList<City>();
	
	public void read(){
		
		FileInputStream fis = null;
		try {
			fis = new FileInputStream("src/city.xml");
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		BufferedReader br = new BufferedReader(new InputStreamReader(fis));
		
		
//		<city name=beijing mnv=014 cyh=421 date="MM-DD-YY" time=12/>
		String regex = "mnv=[\\w]*";
		
		
		try {
			while(br.ready()){
				
				String line = br.readLine();
				Pattern pat = Pattern.compile(regex);
				Matcher mat = pat.matcher(line);
				boolean flag = mat.find();
				System.out.println(mat.group().substring(4,mat.group().length()));
				
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	
	public static void main(String[] args) {
		
		CityReader reader = new CityReader();
		reader.read();
		
	}
	
}


深圳之光 2013-08-23
  • 打赏
  • 举报
回复
引用 5 楼 rui888 的回复:
你的也不xml的格式啊。有这个吗 <?xml version="1.0" encoding="UTF-8"?>
没有这个,所以不是标准的XML文件。只是作为数据存储的媒介啊。所以我代码写不下去了。来请教大神
tony4geek 2013-08-23
  • 打赏
  • 举报
回复
你的也不xml的格式啊。有这个吗 <?xml version="1.0" encoding="UTF-8"?>
深圳之光 2013-08-23
  • 打赏
  • 举报
回复
引用 2 楼 huntor 的回复:
文档的root节点吃掉了?
没有root节点。 定义一个default.xml 里面的内容是: <city name=beijing mnv=014 cyh=421 date="MM-DD-YY" time=12/> <city name=shanghai mnv=024 cyh=011 date="MM-DD-YY" time=24/> <city name=hena mnv=014 cyh=421 date="MM-DD-YY" time=12/> 现在就想怎么把他们解析出来。弄了好久
深圳之光 2013-08-23
  • 打赏
  • 举报
回复
引用 1 楼 evangelionxb 的回复:
整个xml发上来,另外这个xml书写的也不规范。
里面就这几行啊。
huntor 2013-08-23
  • 打赏
  • 举报
回复
文档的root节点吃掉了?
evangelionxb 2013-08-23
  • 打赏
  • 举报
回复
整个xml发上来,另外这个xml书写的也不规范。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧