1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java dom获取命名空间属性_Java DOM XML解析::获取元素属性值

java dom获取命名空间属性_Java DOM XML解析::获取元素属性值

时间:2021-11-28 05:59:13

相关推荐

java dom获取命名空间属性_Java DOM XML解析::获取元素属性值

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

&LT nodename attribute =“value”>我需要将其解压缩以将其与另一个字符串进行比较.

但由于我没有调用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();

}

}

}

解决方法:

解决了:

XML输入:

< nodename attribute="value" > Something nodename>

Java代码:

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

System.out.println(subs.item(0).getTextContent()); // >> Something

Element element = (Element) document.adoptNode(subs.item(0));

System.out.println(element.getAttribute("attribute")); // >> value

标签:java,dom,xml

来源: https://codeday.me/bug/0902/1789992.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。