将xml代码放在eclipse中的目录结构中,同时使用dom在java中进行xml解析

时间:2013-03-28 08:22:50

标签: xml xml-parsing

我想在DOM解析器的帮助下使用java解析XML文件,我想知道我在哪里将XML文件和.java文件存储在eclipse的目录结构中。现在我的困惑是在eclipse的目录结构中添加这两个文件的位置?请帮我解决这个问题,

<?xml version="1.0" encoding="UTF-8"?>
<stocks>
<stock>
<symbol>Citibank</symbol>
<price>100</price>
<quantity>1000</quantity>
</stock>
<stock>
<symbol>Axis bank</symbol>
<price>90</price>
<quantity>2000</quantity>
</stock>
</stocks>

和my.java代码在这里。

import java.io.File;
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 DOMExampleJava {

public static void main(String args[]) {
try {

File stocks = new File("Stocks.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(stocks);
doc.getDocumentElement().normalize();

System.out.println("root of xml file" + doc.getDocumentElement().getNodeName());
NodeList nodes = doc.getElementsByTagName("stock");
System.out.println("==========================");

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

if (node.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) node;
System.out.println("Stock Symbol: " + getValue("symbol", element));
System.out.println("Stock Price: " + getValue("price", element));
System.out.println("Stock Quantity: " + getValue("quantity", element));
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
}

private static String getValue(String tag, Element element) {
NodeList nodes = element.getElementsByTagName(tag).item(0).getChildNodes();
Node node = (Node) nodes.item(0);
return node.getNodeValue();
}
}

1 个答案:

答案 0 :(得分:1)

根据您的问题,我觉得您没有完成基本的日食设置。在尝试XML解析程序之前,我建议通过这个eclipse getting started tutorial并运行本教程中给出的基本程序。这将确保您的eclipse设置准备就绪。

接下来,将您的DOMExampleJava类添加到项目中(一旦完成教程,您就会知道项目所指的内容)并确保编译时没有错误。然后尝试运行解析示例。

至于XML文件的位置,假设您刚刚在File构造函数中指定了文件名,则必须将该文件放在项目目录中。另一种方法是在File构造函数中指定文件的绝对路径,例如,linux上的File("/home/some/directory/stock.xml")或Windows上的File("C:/Answers/File/data.txt");这样你就不必担心它与eclipse目录结构的相关性。

如果您有任何问题,请在评论中告诉我。