java xml 单标签,如何使用java从xml(DOM)的多级别标签中读取特定元素

I want to read a multi level tags from xml(DOM) using java and the sample xml is :

test1

address1

test2

address2

test3

address3

How to read test2 and

address2
from the above xml?

I have given a sample code .. but i need to find the values dynamically.

when i am iterating bu using subclass tag, it's giving all the data. just i want to know how to get the specific data like test2 and

address2
.

Below is my java code which is reading the above xml:

NodeList fList = firstWordElement

.getElementsByTagName("root");

for (int i = 0; i < fList.getLength(); i++) {

Node firstFLNode = fList.item(i);

if (firstFLNode.getNodeType() == Node.ELEMENT_NODE) {

Element firstWdElement = (Element) firstFLNode;

NodeList firstWdList = firstWdElement.getElementsByTagName("innerclass");

for (int j = 0; j < firstWdList.getLength(); j++) {

Element firstWd1Element = (Element) firstWdList.item(j);

if (firstWd1Element.getNodeType() == Node.ELEMENT_NODE) {

String InnerName = ParseUtil.getTagValue("name", firstWd1Element);

String InnerFormat = ParseUtil.getTagValue("format", firstWd1Element);

String InnerDescription = ParseUtil.getTagValue("description", firstWd1Element);

NodeList innerClassList = firstWd1Element.getElementsByTagName("subclass");

for (int k = 0; k < innerClassList.getLength(); k++) {

Element subClassElement = (Element) innerClassList

.item(k);

if (subClassElement.getNodeType() == Node.ELEMENT_NODE) {

String InnerSubName = ParseUtil.getTagValue("name", subClassElement);

System.out.println("Innername==="+ InnerSubName);

String InnerSubFormat = ParseUtil.getTagValue("format", subClassElement);

System.out.println("Innerformat==="+ InnerSubFormat);

String InnerSubDescription = ParseUtil.getTagValue("description", subClassElement);

System.out.println("Innerdescription==="+ InnerSubDescription);

}

}

}

}

}

}

解决方案

Use XPATH APIs

You create an XPathFactory:

XPathFactory factory = XPathFactory.newInstance();

You then use this factory to create an XPath object:

XPath xpath = factory.newXPath();

The XPath object compiles the XPath expression:

XPathExpression expr = xpath.compile("//book[author='Neal Stephenson']/title/text()");

Object result = expr.evaluate(doc, XPathConstants.NODESET);

You can then cast the result to a DOM NodeList and iterate through that to find all the titles:

NodeList nodes = (NodeList) result;

for (int i = 0; i < nodes.getLength(); i++) {

System.out.println(nodes.item(i).getNodeValue());

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值