cuốn sách gpt4 ai đã làm

Java 说 XML 文档格式不正确

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 04:05:30 29 4
mua khóa gpt4 Nike

Trình phân tích cú pháp XML của Java dường như cho rằng tài liệu XML của tôi không đúng định dạng sau phần tử gốc. Nhưng tôi đã xác minh nó bằng một số công cụ và tất cả đều đồng ý. Đây có thể là lỗi trong mã của tôi chứ không phải do tài liệu. Nếu bạn có thể giúp đỡ tôi, tôi sẽ rất biết ơn.

Đây là phương pháp Java của tôi:

void void tảiFromXMLFile(File f) ném ParserConfigurationException, IOException, SAXException {
Tệp tập tin = f;
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db;
Tài liệu doc ​​= null;
db = dbf.newDocumentBuilder();
doc = db.parse(file);
doc.getDocumentElement().normalize();
Chuỗi desc = "";
Chuỗi đến hạn = "";
Nhận xét chuỗi = "";
NodeList taskList = doc.getElementsByTagName("task");
for (int i = 0; i taskList.getLength(); i++) {
Thuộc tính NodeList = taskList.item(i).getChildNodes();
for (int j = 0; i < thuộc tính.getLength(); j++) {
Thuộc tính nút = thuộc tính.item(i);
if (attribute.getNodeName() == "mô tả") {
desc = attribute.getTextContent();
}
if (attribute.getNodeName() == "do") {
do = attribute.getTextContent();
}
if (attribute.getNodeName() == "bình luận") {
bình luận = attribute.getTextContent();
}
task.add(new Task(desc, do, comment));
}
desc = "";
đến hạn = "";
bình luận = "";
}
}

Đây là tệp XML tôi muốn tải:

  


Nhiệm vụ 1
Ngày đến hạn 1
Bình luận 1
sai


Nhiệm vụ 2
Ngày đến hạn 2
Bình luận 2
sai


Nhiệm vụ 3
Ngày đến hạn 3
Bình luận 3
đúng


Đây là thông báo lỗi java gửi cho tôi:

chạy:
[Lỗi nghiêm trọng] task.xml:28:3: Đánh dấu trong tài liệu theo sau phần tử gốc phải được định dạng đúng.
Ngày 17 tháng 5 năm 2010 6:07:02 chiều todolist.TodoListGUI
NGHIÊM TRỌNG: vô giá trị
org.xml.sax.SAXParseException: Đánh dấu trong tài liệu theo sau phần tử gốc phải được định dạng đúng.
tại com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:239)
tại com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:283)
tại javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:208)
tại todolist.TodoListGUI.loadFromXMLFile(TodoListGUI.java:199)
tại todolist.TodoListGUI.(TodoListGUI.java:42)
tại todolist.Main.main(Main.java:25)
XÂY DỰNG THÀNH CÔNG (tổng thời gian: 19 giây)

Tham chiếu đến TodoListGUI.java:199 là

doc = db.parse(file);

Nếu ngữ cảnh này hữu ích cho bất kỳ ai ở đây, thì tôi đang cố gắng viết một ứng dụng GUI đơn giản để quản lý danh sách việc cần làm có chức năng đọc và ghi các tệp XML xác định các tác vụ.

câu trả lời hay nhất

org.xml.sax.SAXParseException: Đánh dấu trong tài liệu theo sau phần tử gốc phải được định dạng đúng.

Ngoại lệ cụ thể này chỉ ra rằng có nhiều phần tử gốc trong tài liệu XML. nói cách khác,Không phải là phần tử gốc duy nhất. Lấy tài liệu XML của bạn làm ví dụ, hãy xem xét một tài liệu không có tài liệu. yếu tố và ba các phần tử ở gốc. Điều này gây ra ngoại lệ này.

Vì tệp XML bạn đăng có vẻ ổn nên vấn đề nằm ở chỗ khác. Có vẻ như nó không phân tích cú pháp tệp XML mà bạn mong đợi. Để gỡ lỗi nhanh, hãy thêm phần sau vào đầu phương thức của bạn:

System.out.println(f.getAbsolutePath());

Xác định vị trí tệp trong hệ thống tệp đĩa và xác minh nó.

Về việc Java nói rằng tài liệu XML không đúng định dạng, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/2853242/

29 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress