【发布时间】:2014-06-25 05:28:51
【问题描述】:
我正在尝试将 XML 文件解析为 java 类。但它给了我一个错误说
找不到或无法加载主类
我正在解析的 XML 文件与 PretechDOMReader.java 文件位于同一目录中
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 PretechDOMReader {
public static void main(String[] args) {
try {
File fXmlFile = new File("PretechDOM.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory
.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
System.out.println("Order Details"
+ doc.getDocumentElement().getNodeName());
NodeList nList = doc.getElementsByTagName("Ordernumber");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
Node orderedItem1 = (Node) (NodeList) eElement
.getElementsByTagName("OrderedItem1").item(0)
.getChildNodes().item(0);
System.out.println("OrderedItem1 :"
+ orderedItem1.getNodeValue());
Node orderitemPrice = (Node) (NodeList) eElement
.getElementsByTagName("OrderitemPrice").item(0)
.getChildNodes().item(0);
System.out.println("OrderitemPrice :"
+ orderitemPrice.getNodeValue());
Node orderitemTax = (Node) (NodeList) eElement
.getElementsByTagName("OrderitemTax").item(0)
.getChildNodes().item(0);
System.out.println("OrderitemTax :"
+ orderitemTax.getNodeValue());
Node orderDiscount = (Node) (NodeList) eElement
.getElementsByTagName("OrderDiscount").item(0)
.getChildNodes().item(0);
System.out.println("OrderDiscount :"
+ orderDiscount.getNodeValue());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
这是我的 XML 文件
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Order>
<Ordernumber Number="9988">
<OrderedItem1>Pepsi</OrderedItem1>
<OrderitemPrice>10</OrderitemPrice>
<OrderitemTax>10</OrderitemTax>
<OrderDiscount>20</OrderDiscount>
</Ordernumber>
<Ordernumber Number="9999">
<OrderedItem1>Cocacola</OrderedItem1>
<OrderitemPrice>11</OrderitemPrice>
<OrderitemTax>11</OrderitemTax>
<OrderDiscount>22</OrderDiscount>
</Ordernumber>
【问题讨论】:
-
正在使用什么命令行?该类是否属于
package?你编译好源文件了吗? -
你怎么称呼这个?
-
@MADProgrammer 是的,该类属于默认包。我在 Eclipse 中运行这个类。@Alexandre Santos 你的意思是我如何调用 XML 文件?我通过文档生成器的 parse() 调用它
-
你能在这里发布完整的堆栈跟踪错误吗?
-
我自己试过了,效果很好。您是否尝试过清理和重建项目? Eclipse 的“问题”视图中是否有任何错误?
标签: java xml-parsing domparser