java的xml中怎么取指定值,Java HTML/XML - 如何使用XML中的相应属性值获取值的计数...

import java.io.File;

import java.util.ArrayList;

import java.util.HashSet;

import java.util.List;

import java.util.Set;

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;

import org.w3c.dom.Element;

import org.w3c.dom.Node;

import org.w3c.dom.NodeList;

public class Main {

public static void main(String[] args) throws Exception{

List carsList = new ArrayList();

Set carsset = new HashSet();

File fXmlFile = new File("cars.xml");

DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();

DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();

Document doc = dBuilder.parse(fXmlFile);

doc.getDocumentElement().normalize();

NodeList nList = doc.getElementsByTagName("cars");

Car tempCar = null;

for (int temp = 0; temp < nList.getLength(); temp++) {

Node nNode = nList.item(temp);

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

tempCar = new Car();

Element eElement = (Element) nNode;

tempCar.setModel(eElement.getElementsByTagName("model").item(0)

.getTextContent());

tempCar.setVersion(eElement.getElementsByTagName("version").item(0)

.getTextContent());

carsList.add(tempCar);

carsset.add(tempCar);

}

}

for (Car cs : carsset) {

int count = 0;

for (Car cl : carsList) {

if (cs.equals(cl)) {

count = count + 1;

}

}

System.out.println(cs + "\t" + count);

}

}

}

class Car {

private String model;

private String version;

public String getModel() {

return model;

}

public void setModel(String model) {

this.model = model;

}

public String getVersion() {

return version;

}

public void setVersion(String version) {

this.version = version;

}

@Override

public boolean equals(Object obj) {

if (this.model.equals(((Car) obj).getModel())

&& this.version.equals(((Car) obj).getVersion())) {

return true;

}

return false;

}

@Override

public int hashCode() {

return this.model.length() + this.version.length();

}

@Override

public String toString() {

return this.model + "\t " + this.version;

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值