java xml获取属性值_Java DOM XML解析::获取元素属性值

我如何从元素中提取属性值。我的xml节点是这样写的

< nodename属性=“价值”>我需要解压出来比较它与另一个字符串。

但因为我没有调用document.getElementsByTag,所以我不能使用.getAttribute(“att。”)。getNodeValue来获取值。

相反,我有一个NodeList和getAttribute()没有getNodeValue。

package dev;

import java.io.*;

import java.util.*;

import javax.xml.parsers.*;

import javax.xml.xpath.*;

import org.w3c.dom.*;

import org.xml.sax.Attributes;

import org.xml.sax.SAXException;

public class Parser {

static String def = "\"admin\",\"base\",\"Default\",\"simple\"";

static String category = "";

static String sku = "";

static String has_options = "0";

static String name = "";

static String image = "";

static String small_image = "";

static String thumbnail = "";

public static void toCSV() {

try {

BufferedWriter output = new BufferedWriter(new FileWriter("sim.csv", true));

output.newLine();

output.write(def);

output.write(String.format(",\"%s\",\"%s\",\"%s\"", category, sku, has_options));

output.write(String.format(",\"%s\",\"%s\",\"%s\",\"%s\"", name, image, small_image, thumbnail));

output.flush();

output.close();

} catch(Exception e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

toCSV();

try {

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

factory.setNamespaceAware(true);

DocumentBuilder builder = factory.newDocumentBuilder();

Document document = builder.parse(new File("input.asp.xml"));

document.getDocumentElement().normalize();

NodeList list = document.getElementsByTagName("izdelek");

for(int i = 0; i < 1; i++) {

NodeList child = list.item(i).getChildNodes();

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

if(child.item(j).getNodeName().equals("kategorija")) {

category = child.item(j).getTextContent().trim();

} else if(child.item(j).getNodeName().equals("ean")) {

sku = child.item(j).getTextContent().trim();

} else if(child.item(j).getNodeName().equals("izdelekIme")) {

name = child.item(j).getTextContent().trim();

} else if(child.item(j).getNodeName().equals("slikaMala")) {

small_image = child.item(j).getTextContent().trim();

thumbnail = child.item(j).getTextContent().trim();

} else if(child.item(j).getNodeName().equals("slikaVelika")) {

image = child.item(j).getTextContent().trim();

} else if(child.item(j).getNodeName().equals("dodatneLastnosti")) {

NodeList subs = child.item(j).getChildNodes();

// ^ need to parse these nodes they are written as

// i need to print out the value

}

}

//toCSV();

}

} catch(Exception io) {

io.printStackTrace();

}

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值