<?xml version="1.0" encoding="utf-8"?>
<config>
  <searchkey>id</searchkey>
  <item id="AQDAjax">org.web.ajax.AQDAjax</item>
  <item id="AADAjax">org.web.ajax.AADAjax</item>
</config>
需要用java条件检索如上格式的xml
searchkey的值id表示按id检索item实现完成了只需调用searchById(String path, String aaaa)
path为xml文件在服务器上位置
aaaa为传入的检索条件,如果我传入"AQDAjax"则会返回"org.web.ajax.AQDAjax"要用sax来实现

解决方案 »

  1.   

    一定要Sax...没印象,
    如果是 dom4j的话
    用 xpath//config/item[@id="AQAjax"]
      

  2.   

    sax...没用过, 用dom4j的话 比较简单  可以看看
    http://www.ibm.com/developerworks/cn/xml/x-dom4j.html
      

  3.   

    呵呵,看来dom4j还是比较常用些
    因为这些信息只需要读出来就够了,所以想用sax试试
      

  4.   

    你的目的是不是想在性能上加快些?印象中,dom4j的读取部分是调用了sax接口的
      

  5.   

    差不多,只要求读xml的话,dom4j不会生成一棵文档树吗,好像还是会的额
    错了的话请纠正
      

  6.   

    sax 没研究,不过jdom 的话倒是可以
      

  7.   

    sax是顺序遍历的,你可以根据每个标签的开始和结算进行操作,
    先建一个处理类继承DocumentHandler,然后根据下面几个方法获取内容。
    1、startElement(String name, AttributeList atts)
    节点开始
    name就是标签的名字,AttributeList就是这个标签的属性列表2、endElement(String name) 
    节点结束3、characters(char[] ch, int start, int length)
    获取接点的内容可以直接用new String(ch, start, length)。至于如何对这些处理,看你实际的需求了
      

  8.   

    你可以继承DefaultHandler,方法也是查不多。
    然后用
    SAXParserFactory factory = SAXParserFactory.newInstance();
    SAXParser saxParser = factory.newSAXParser();
    MessageContentHandler handler = new MessageContentHandler();
    saxParser.parse(new FileInputStream(path), handler);
    这样就可以进行解析查找了
      

  9.   

    嗯,关键是我的业务有点怪,先要查找searchkey节点
    将它的子节点的文本值id拿出来去匹配item节点
    如果item节点有id属性,并且其属性值为xxx
    就将其子节点上的文本值读出来我再试试看,谢谢大家的回答。