#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.