使用SAXReader从xml文件中读取元素

时间:2016-03-14 05:51:25

标签: java xml saxparser dom4j

尝试使用SAXReader阅读以下xml内容 我必须读取节点名"SelogerListController"的子元素。 节点名称"SelogerListController"包含3个子节点。

我的主要目标是获得节点名称"SelogerListControllerlike"

的第3个节点的子元素
 src="http://res/Favorite_Badge.png" ,src="http://res/sm_aries.png"

 src="http://res/sm_cancer.png"  and http://res/Favorite_Badge.png
 ...............

以及提醒细节也是..

代码使用

SAXReader reader = new SAXReader();
        Document document;
        String xPath = "//XREClientView/XREClientView[5]";
        String nodeName = null;

        List<Element> childViews;
        try {
            document = reader.read("F://TestNewXMLAfter.xml");

            List<Node> nodes = document.selectNodes(xPath);
            for (Node node : nodes) {
                System.out.println("name :: " + node.valueOf("@name"));
                System.out.println(node.getPath());
                nodeName = node.valueOf("@name");
                if (nodeName.equals("SelogerListController")) {
                    childViews = ((Element) node).elements();

                    for (Element element : childViews) {
                        Element ele = element.element("XREClientImage");
                    }

                    break;
                }
            }
        } catch (DocumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

1 个答案:

答案 0 :(得分:1)

您在帖子中显示的XPath是:

//XREClientView/XREClientView[5]

这说找到一个XREClientView,其中包含至少五个名为XREClientView的子节点,并返回第五个子节点。 XPath应该开始

//XREClientView[@name='SelogerListController']/...

您可以在哪里找出替代...的内容。不完全清楚您可以使用哪些唯一属性值来查找您感兴趣的节点。

相关问题