Ошибка: не удалось найти или загрузить основной класс при разборе XML-файла

#java #xml-parsing #domparser

#java #xml-синтаксический анализ #domparser

Вопрос:

Я пытаюсь разобрать 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>
 

Комментарии:

1. Какую командную строку вы используете? Принадлежит ли класс a package ? Вы скомпилировали исходный файл?

2. Как вы это называете?

3. @MadProgrammer Да, класс принадлежит пакету по умолчанию. Я запускаю этот класс в Eclipse. @Alexandre Santos Вы имеете в виду, как я вызываю XML-файл? Я вызываю его через parse() конструктора документов

4. можете ли вы опубликовать здесь полную ошибку отслеживания стека?

5. Я пробовал самостоятельно, и все работает нормально. Вы пытались очистить и перестроить проект? Есть ли у вас какие-либо ошибки в «проблемном» представлении Eclipse?

Ответ №1:

Ваш код работает хорошо. Пожалуйста, проверьте настройку пути к классу вашего проекта в Eclipse.