2 u013208438 u013208438 于 2014.01.03 15:30 提问

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
epw1315620   2014.01.04 02: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;
}
u013208438
u013208438 谢谢了
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!