使用SaxParser获取ID
问题描述:
我目前正在尝试制作一个java文件,该文件可以使用xml进行导出。我需要实际检索的唯一的事情是工作人员用ID的并没有什么else.If我的XML文件看起来像这样:使用SaxParser获取ID
<? xml version= "1.0" ?>
< company>
< staff id = "22" >
< firstname> kate </firstname >
< lastname> kim </lastname >
< nickname> lolo </nickname >
< salary> 10560</ salary >
</ staff>
< staff>
< firstname> Chelsea </firstname >
< lastname> young</ lastname >
< nickname> cheloung </nickname >
< salary> 200700</ salary >
</ staff>
< staff id = "23" >
< firstname> Dani </firstname >
< lastname> Heil </lastname >
< nickname> Heily </nickname >
< salary> 300000</ salary >
</ staff>
</ company>
和我的Java代码如下所示:
package xmlfunctions;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class saxParser {
public static void main(String argv[]) {
try {
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();
DefaultHandler handler = new DefaultHandler() {
boolean bfname = false;
public void startElement(String uri, String localName,String qName,
Attributes attributes) throws SAXException {
System.out.println("Start Element :" + qName);
if (qName.equalsIgnoreCase("FIRSTNAME")) {
bfname = true;
}
}
public void endElement(String uri, String localName,
String qName) throws SAXException {
System.out.println("End Element :" + qName);
}
public void characters(char ch[], int start, int length) throws SAXException {
if (bfname) {
System.out.println("First Name : " + new String(ch, start, length));
bfname = false;
}
}
};
saxParser.parse("KatesFile.xml", handler);
} catch (Exception e) {
e.printStackTrace();
}
}
}
我怎样才能改变它让它只显示员工ID?这就是我真正想要的其他标签。任何人都可以帮忙吗?我很不确定如何自己取得身份证。
答
使用参数attributes
,您可以在startElement()
中获得id
的值。
public void startElement(String uri, String localName,String qName,Attributes attributes) throws SAXException {
if (qName.equals("staff")) {
System.out.println(attributes.getValue("id"));
}
}
如果在<staff>
没有id
,该值为null。
谢谢你绝对的传奇!一天的帮手! – user3373261 2014-09-19 13:55:05
完美地工作! – user3373261 2014-09-19 14:26:05
如果我想获得id和它的名字而不是数字,它的工作原理是什么?只是它现在不能工作我已经尝试使用它的ID有名称而不是数字 – user3373261 2014-09-19 14:43:49