抱歉,我想问一下如何在考虑标签名称及其属性的情况下获取标签值。我在 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/