日期:2014-05-20  浏览次数:20761 次

使用Dom4J 解析字符串,判断某元素下级是否有某个标签问题
解析XML 有什么好方法判断某个下面是否有这个元素
Document doc = DocumentHelper.parseText(xml);
Element body = doc.getRootElement();
在这里判断下面是否有有没有username 
Element username = body.element("username");


或者有其他好的操作XML方法也行
需要输入一个特定格式的XML 字符串,大概方法是functionName(String xmlString)
虽然特定格式,但是不确定某个非关键的标签有没有。
那个输入的字符串不会很大。



复制过来的就算了。。。
java xml dom

------解决方案--------------------
迭代应该可以的啊
------解决方案--------------------

public static List getElementsByName(Document document, String name) {
List list = document.selectNodes("//" + name);
return list;
}


------解决方案--------------------
判断某元素下级是否有某个标签问题
使用 Dom4J,然后用xpath读取就可以了,非常简单。
下面只是一种写法,更多的参考Dom4J和Xpath的例子。

import org.dom4j.*;
import org.dom4j.io.SAXReader;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class XmlAndXPath {

    public static void main(String[] args) throws Exception {
        SAXReader reader = new SAXReader();
        Document doc = reader.read("/Users/Biao/Desktop/feature.xml");

        List<String> ids = new ArrayList<String>();

        XPath xpathSelector = DocumentHelper.createXPath("//plugin[@id]");
        List nodes = xpathSelector.selectNodes(doc);
        
        for (Object obj : nodes) {
            Element n = (Element) obj;
            ids.add(n.attribute("id").getText());
        }

        Collections.sort(ids);

        for (String id : ids) {
            System.out.println(id);
        }
    }
}

------解决方案--------------------
各种解析XML的用法:http://blog.csdn.net/gaopeng0071/article/details/10419027