dom4j中能否通过节点的属性获得某个具体的节点? -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

dom4j中能否通过节点的属性获得某个具体的节点?

screenshot
我想获得 node name="b" 的这个节点该怎么办?求各位大神帮忙解决下!

展开
收起
蛮大人123 2016-02-19 15:39:12 2383 0
1 条回答
写回答
取消 提交回答
  • 蛮大人123
    我说我不帅他们就打我,还说我虚伪
    public static void main(String[] args) {
        SAXReader saxReader = new SAXReader();
        Document document;
        try {
            document = saxReader.read(new File(Dom4j.class.getClass()
                    .getResource("/").getFile().toString()
                    + "test.xml"));
            Element root = document.getRootElement();
            Element node = Dom4j.parse(root , "name" , "b");
            ...
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
    /*
     * 获得X属性结果是X值的整个标签
     */
    public static Element parse(Element node , String type , String val) {
        for (Iterator iter = node.elementIterator(); iter.hasNext();) {
            Element element = (Element) iter.next();
            Attribute name = element.attribute(type);
            if (name != null) {
                String value = name.getValue();
                if (value != null && val.equals(value))
                    return element;
                else
                    parse(element , type , val);
            }
        }
        return null;
    }
    2019-07-17 18:44:49
    赞同 展开评论 打赏
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载