有个a.xml文件:
<?xml version="1.0" encoding="gb2312"?>
<a>
<menu name="1">
<tablename>df</tablename>
</menu>
<menu name="2">
<tablename>sdfsf</tablename>
</menu>
<menu name="3">
<tablename>jhjj</tablename>
</menu>
</a>
我想把 name为"2"的menu节点里的<tablename>的值打印出来,该如何用jdom中的 saxbuilder来取值??

解决方案 »

  1.   

    List children = root.getChildren();
    for(int i=0;i<children.size();i++){
    Element child = (Element) children.get(i);
    if(child.getAttributevalue("name").equals("2")){
    Element tchild = (Element) child.getChildren().get(0);
    String text = tchild.getText();
    }
    }
    那个text就是你要的值。你自己去试试了。
      

  2.   

    这个问题可以使用XPath,不过需要下载JDOM对level3的支持包
    Element childNode = (Element) XPath.selectSingleNode(doc.getRootElement(), "/a/menu[@name = '2']/tablename");
    String value=childNode.getText();
    如果不用的话,使用SAXBuilderSAXBuilder builder = new SAXBuilder();
    Document doc = builder.build(....);//加载xml文件的路径
    Element root=doc.getRootElement();
    ....//下面都是用楼上的代码