如何在Java中使用dom解析器按属性获取元素

苏舍尔·辛格

我不知道如何通过其属性获取元素。我尝试了以下操作,但由于循环继续,item(1)可能会更改,但出现错误。一些字段标签可能会被剥离。所以位置可能会改变。我想得到:

<field name="Test/Content/Modified">Thu Jun 01 13:11:43 2014</field>

Xml:

 <assets>
        <document path="some/path/1">
            <metadata>                    
                <field name="Test/Content/Date">2013-12-20</field>
                <field name="Test/Content/Modified">Thu Jun 01 13:11:43 2014</field>
                <field name="Test/Locale">en_US</field>
                <field name="Test/Content/SubSolution"></field>
            </metadata>
        </document>
        <document path="some/path/2">
            <metadata>                
                <field name="Test/Content/Date">2013-12-20</field>
                <field name="Test/Locale">en_US</field>
                <field name="Test/Content/Modified">Thu Jun 01 13:11:43 2014</field>
                <field name="Test/Content/SubSolution"></field>
            </metadata>
        </document>
 <assets>

java部分代码:

DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse("E:\\example.xml");

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

NodeList nList = doc.getElementsByTagName("document");
for (int i = 0; i < nList.getLength(); i++) {
    Node nNode = nList.item(i);
    if (nNode.getNodeType() == Node.ELEMENT_NODE) {
        Element eElement = (Element) nNode;
        Date date = new Date(eElement.getElementsByTagName("field").item(1).getTextContent());
        System.out.println(date);
        Date date1 = new Date(2014 - 1900, 06 - 1, 04);
        if (date.compareTo(date1) == 1) {
            list.add(eElement.getAttribute("path").trim());
        }
    }
}
曼努蒂

您需要遍历field节点并检查匹配的属性值:

    NodeList nList = doc.getElementsByTagName("document");
    for (int i = 0; i < nList.getLength(); i++) {
        Node nNode = nList.item(i);
        if (nNode.getNodeType() == Node.ELEMENT_NODE) {
            Element eElement = (Element) nNode;
            NodeList fieldNodes = eElement.getElementsByTagName("field");
            for(int j = 0; j < fieldNodes.getLength(); j++) {
                Node fieldNode = fieldNodes.item(j);
                NamedNodeMap attributes = fieldNode.getAttributes();
                Node attr = attributes.getNamedItem("name");
                if(attr != null) {
                    if(attr.getTextContent().equals("Test/Content/Modified")) {
                        Date date = new Date(fieldNode.getTextContent());
                        System.out.println(date);
                        Date date1 = new Date(2014 - 1900, 06 - 1, 04);
                        if (date.compareTo(date1) == 1) {
                            list.add(eElement.getAttribute("path").trim());
                        }
                    }
                }
            }
        }
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Java中使用dom解析器按属性获取元素

来自分类Dev

在JAVA中使用DOM解析器按ID获取元素

来自分类Dev

在JAVA中使用DOM解析器通过ID获取元素

来自分类Dev

如何在Java中使用DOM解析器解析XML文件时查找具有子节点的节点

来自分类Dev

如何在Java中使用DOM解析器解析XML文件时查找具有子节点的节点

来自分类Dev

使用xml dom解析器获取元素

来自分类Dev

如何在不使用Java的DOM或SAX解析器的情况下解析XML?

来自分类Dev

如何使用Java DOM解析器查找Node属性值并以XML删除它

来自分类Dev

如何在Wildfly中使用自定义系统属性解析器

来自分类Dev

JAVA使用stax解析器从xml获取属性值

来自分类Dev

使用Java解析器从xml获取属性时出错

来自分类Dev

如何在'undefined()'解析器中使用'debug()'

来自分类Dev

如何在'undefined()'解析器中使用'debug()'

来自分类Dev

如何在 solr 中使用 disMax 查询解析器

来自分类Dev

如何在PHP中使用DOM解析器为h1,h2等创建<div>?

来自分类Dev

在Java DOM(XML解析器)的根目录下获取元素(而非节点)

来自分类Dev

使用DOM解析器Java解析带有嵌套重复元素名称的xml文档。

来自分类Dev

使用DOM解析器Java解析具有嵌套重复元素名称的xml文档。

来自分类Dev

如何通过php dom解析器从特定的div图像获取alt属性?

来自分类Dev

使用PHP简单HTML DOM解析器获取Div属性

来自分类Dev

PHP使用DOM解析器获取自定义属性值

来自分类Dev

使用PHP Simple HTML DOM解析器获取Div属性

来自分类Dev

java DOM XML 解析器内部元素

来自分类Dev

PHP:如何使用simple_html_dom解析器将CSS text-align属性添加到元素的现有内联样式属性中?

来自分类Dev

使用DOM解析器php获得多个元素

来自分类Dev

使用DOM解析器php获得多个元素

来自分类Dev

如何使用PHP Simple HTML DOM解析器查找所有元素?

来自分类Dev

如何使用PHP Simple HTML DOM解析器查找所有元素?

来自分类Dev

如何在Python中使用CSV解析器解析字符串?

Related 相关文章

  1. 1

    如何在Java中使用dom解析器按属性获取元素

  2. 2

    在JAVA中使用DOM解析器按ID获取元素

  3. 3

    在JAVA中使用DOM解析器通过ID获取元素

  4. 4

    如何在Java中使用DOM解析器解析XML文件时查找具有子节点的节点

  5. 5

    如何在Java中使用DOM解析器解析XML文件时查找具有子节点的节点

  6. 6

    使用xml dom解析器获取元素

  7. 7

    如何在不使用Java的DOM或SAX解析器的情况下解析XML?

  8. 8

    如何使用Java DOM解析器查找Node属性值并以XML删除它

  9. 9

    如何在Wildfly中使用自定义系统属性解析器

  10. 10

    JAVA使用stax解析器从xml获取属性值

  11. 11

    使用Java解析器从xml获取属性时出错

  12. 12

    如何在'undefined()'解析器中使用'debug()'

  13. 13

    如何在'undefined()'解析器中使用'debug()'

  14. 14

    如何在 solr 中使用 disMax 查询解析器

  15. 15

    如何在PHP中使用DOM解析器为h1,h2等创建<div>?

  16. 16

    在Java DOM(XML解析器)的根目录下获取元素(而非节点)

  17. 17

    使用DOM解析器Java解析带有嵌套重复元素名称的xml文档。

  18. 18

    使用DOM解析器Java解析具有嵌套重复元素名称的xml文档。

  19. 19

    如何通过php dom解析器从特定的div图像获取alt属性?

  20. 20

    使用PHP简单HTML DOM解析器获取Div属性

  21. 21

    PHP使用DOM解析器获取自定义属性值

  22. 22

    使用PHP Simple HTML DOM解析器获取Div属性

  23. 23

    java DOM XML 解析器内部元素

  24. 24

    PHP:如何使用simple_html_dom解析器将CSS text-align属性添加到元素的现有内联样式属性中?

  25. 25

    使用DOM解析器php获得多个元素

  26. 26

    使用DOM解析器php获得多个元素

  27. 27

    如何使用PHP Simple HTML DOM解析器查找所有元素?

  28. 28

    如何使用PHP Simple HTML DOM解析器查找所有元素?

  29. 29

    如何在Python中使用CSV解析器解析字符串?

热门标签

归档