首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SaxParser获取ID

使用SaxParser获取ID
EN

Stack Overflow用户
提问于 2014-09-19 13:43:58
回答 1查看 258关注 0票数 1

我目前正在尝试创建一个java文件,该文件可以使用xml进行导出。我需要实际检索的唯一东西是staff id,而不是else.If,我的xml文件如下所示:

代码语言:javascript
复制
<? 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代码如下所示:

代码语言:javascript
复制
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?这就是我真正想要的,而不是其他的标签。有人能帮忙吗?我不知道怎样才能自己拿到身份证。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-19 13:51:46

您可以使用参数idstartElement()中获得attributes的值。

代码语言:javascript
复制
public void startElement(String uri, String localName,String qName,Attributes attributes) throws SAXException {
    if (qName.equals("staff")) {
        System.out.println(attributes.getValue("id"));
    }
}

如果id中没有<staff>,则该值为null。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25935447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档