yangdd1205 2014-01-03 07:30 采纳率: 100%
浏览 7447
已结题

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

<root>
<node name="a">
    <xml>1</xml>
</node>
<node name="b">
    <xml>2</xml>
</node>
<node name="c">
    <xml>3</xml>
</node>
    ....

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

  • 写回答

1条回答 默认 最新

  • epw1315620 2014-01-03 18:07
    关注
    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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何使用chatgpt完成文本分类任务?
  • ¥15 已知速度v关于位置s的等式,怎么转化为已知位置求速度v的等式
  • ¥15 我有个餐饮系统,用wampserver把环境配置好了,但是后端的网页却进去,是为什么,能不能帮远程一下?
  • ¥15 R运行没有名称为"species"的插槽对于此对象类"SDMmodelCV"
  • ¥20 基于决策树的数字信号处理,2ask 2psk 2fsk的代码,检查下报错的原因
  • ¥15 wincc已组态的变量过多
  • ¥60 如图:直线与椭圆X轴平行,求直线与椭圆任意一点的相切坐标计算公式
  • ¥50 如何用python使用opencv里的cv::cudacodec::VideoWriter函数对视频进行GPU硬编码
  • ¥100 c#solidworks 二次开发 工程图自动标边线法兰 等折弯尺寸怎么标
  • ¥15 halcon DrawRegion 提示错误