java - 如何使用 Java 在 XML 中考虑标签名称及其属性来获取值

标签 java xml lucene

抱歉,我想问一下如何在考虑标签名称及其属性的情况下获取标签值。我在 lucene 上使用 XML 进行索引

这是 XML

 <?xml version="1.0" encoding="utf-8"?>
<Root xmlns:wb="http://www.worldbank.org">
  <data>
    <record>
      <field name="Country or Area" key="ARB">Arab World</field>
      <field name="Item" key="AG.AGR.TRAC.NO">Agricultural machinery, tractors</field>
      <field name="Year">1961</field>
      <field name="Value">73480</field>
    </record>
  </data>
</Root>

在早期项目中,我只能通过如下来源获取标签值:

private String getTagValue(String tag, Element e) {
        NodeList nlList = e.getElementsByTagName(tag).item(0).getChildNodes();
        Node nValue = (Node) nlList.item(0);
        return nValue.getNodeValue();
    }

但是现在,我想考虑它的属性,所以我必须定义什么标签和属性才能获得正确的值。 谢谢您的回答

最佳答案

为此目的使用 xpath 查询。首先创建一个与此类似的查询(例如获取具有特定值的字段节点):

myQuery = xpath.compile("//field[@value=\"1234\"]");

然后通过在 dom 文档上运行查询来填充节点集:

Object nodeSet = myQuery.evaluate(doc, XPathConstants.NODESET);

关于java - 如何使用 Java 在 XML 中考虑标签名称及其属性来获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14300206/

相关文章:

java - BitSet 不适用于 Integer.MAX_VALUE 和 Integer.MIN_VALUE

java - 如何引用从其他来源导入的 bean?

java - lucene只能排序搜索什么都不行吗?

java - 代号 One MultiButton - 一个文本行中的两个操作按钮

java - 我无法获取数组列表中的对象

c# 从字节数组中检测 xml 编码?

java - 本地化为阿拉伯语后 INSTALL_PARSE_FAILED_MANIFEST_MALFORMED

java - Hibernate 拦截器 - 加载事件后

java - Solr:将文本字段复制到另一个文本字段并转换为关键字

java - 从 xml 文件中提取信息作为 RDF 三元组