sách gpt4 ai đã đi

java - Trình phân tích cú pháp SAX. Làm thế nào để ngăn trình phân tích cú pháp SAX kết nối với Internet?

In lại Tác giả: Data Little Sun Thời gian cập nhật: 2023-10-29 02:40:16 27 4
mua khóa gpt4 Nike

Tôi đang cố gắng phân tích 11384 tệp XML thành cơ sở dữ liệu SQLite. Một trong số:



xmlns:kvg CDATA #ĐÃ SỬA LỖI "http://kanjivg.tagaini.net"
kvg:element CDATA #NGẦM ĐỊNH
kvg:variant CDATA #NGẦM ĐỊNH
kvg:partial CDATA #NGỤ Ý
kvg:original CDATA #NGỤ Ý
kvg:part CDATA #NGỤ Ý
kvg:số CDATA #NGẦM ĐỊNH
kvg:tradForm CDATA #NGỤ Ý
kvg:radicalForm CDATA #NGỤ Ý
kvg:vị trí CDATA #NGẦM ĐỊNH
kvg:radical CDATA #NGỤ Ý
kvg:phon CDATA #NGỤ Ý >
xmlns:kvg CDATA #ĐÃ SỬA LỖI "http://kanjivg.tagaini.net"
kvg:type CDATA #NGẦM ĐỊNH >
]>



<đường dẫn="" id="kvg:0ff01-s1" d="M54.5,15.79c0,6.07-0.29,55.49-0.29,60.55">
<đường dẫn="" id="kvg:0ff01-s2" d="M54.5,88 c -0.83,0 -1.5,0.67 -1.5,1.5 0,0.83 0.67,1.5 1.5,1.5 0.83,0 1.5,-0.67 1.5,-1.5 0,-0.83 -0.67,-1.5 -1.5,-1.5">



1
2


Tôi đang sử dụng trình phân tích cú pháp SAX:

lớp công khai SaxKanjivgHandler mở rộng DefaultHandler {
.....
Thư mục tệp = Tệp mới (KANJIVG_DIRECTORY);
nếu (folder.isDirectory()) {
File[] listOfFiles = folder.listFiles();

cho (Tệp file : listOfFiles) {
nếu (file.isFile()) {
currentFileName = file.getName();
readXmlFromFile(tệp);
}
}
}
.....
public void readXmlFromFile(File file) ném ParserConfigurationException,
Ngoại lệ SAX, Ngoại lệ IO {

Nhà máy SAXParserFactory = SAXParserFactory.newInstance();
Bộ phân tích cú pháp SAXParser = factory.newSAXParser();
parser.parse(tệp, cái này);

}

Khi tôi phân tích tệp, tôi nhận được lỗi này:

Ngoại lệ trong luồng "main" java.net.SocketException: Kết nối bị đặt lại tại java.net.SocketInputStream.read(Nguồn không xác định) tại java.net.SocketInputStream.read(Nguồn không xác định) tại java.io.BufferedInputStream.fill(Nguồn không xác định) tại java.io.BufferedInputStream.read1(Nguồn không xác định) tại java.io.BufferedInputStream.read(Nguồn không xác định) tại sun.net.www.MeteredStream.read(Nguồn không xác định) tại java.io.FilterInputStream.read(Nguồn không xác định) tại sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(Nguồn không xác định) tại com.sun.org.apache.xerces.internal.impl.XMLEntityManager$RewindableInputStream.read(Nguồn không xác định) tại com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(Nguồn không xác định) tại ScandTDexTermsubset (Nguồn chưa biết) tại com.sun.org.apache.xerces.iêm ini Máy quét.skipspaces (nguồn không xác định) tại com.sun.org.apache.xerces.Inalal.impl.xmldtdscannerImpl.scanentityDecl (không xác định nguồn) tại com.sun.org.apache.xerces.Internal.Impl.xMLDTDSC impl.xmldtdscannerimpl.scandtdexternalsubset (nguồn không xác định) tại com.sun.org.apache.xerces.Inalal.impl.xmldocumentscannerimpl.dispatch (nguồn không xác định) tại parse(Nguồn không xác định) tại com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Nguồn không xác định) tại com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(Nguồn không xác định) tại com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Nguồn không xác định) tại com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Nguồn không xác định) tại com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Nguồn không xác định) tại com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Nguồn không xác định) tại Main.main(Main.java:28) tại com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Nguồn không xác định) tại com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Nguồn không xác định) tại com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(Nguồn không xác định) tại javax.xml.parsers.SAXParser.parse(Nguồn không xác định) tại SaxKanjivgHandler.readXmlFromFile(SaxKanjivgHandler.java:63) tại SaxKanjivgHandler.(SaxKanjivgHandler.java:44) tại Main.main(Main.java:28)

Đầu tiên, tôi nghĩ rằng lỗi này là do một tập tin cụ thể nào đó. Nhưng lỗi xảy ra ở các tệp khác nhau vào những thời điểm khác nhau. Làm thế nào để trình phân tích cú pháp SAX ngừng kết nối với internet?

1 Câu trả lời

Bạn có thể cung cấp của riêng bạn Người giải quyết thực thể

lớp công khai DummyEntityResolver triển khai EntityResolver {
công khai InputSource giải quyếtEntity(Chuỗi publicID, Chuỗi systemID)
ném SAXException {

trả về InputSource mới(StringReader mới(""));
}
}

public void readXmlFromFile(File file) ném ParserConfigurationException,
Ngoại lệ SAX, Ngoại lệ IO {

Nhà máy SAXParserFactory = SAXParserFactory.newInstance();
Bộ phân tích cú pháp SAXParser = factory.newSAXParser();
parser.getXMLReader().setEntityResolver(new DummyEntityResolver());
parser.parse(tệp, cái này);

}

Điều này ngăn chặn việc phân giải thực thể bên ngoài. Nếu bạn có một số thực thể bên ngoài mà bạn muốn cung cấp, bạn có thể kiểm tra ID công khaiID hệ thống.

Chiều cao.

Giới thiệu về Java - trình phân tích cú pháp SAX. Làm thế nào để ngăn trình phân tích cú pháp SAX của tôi kết nối với Internet? , 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/28460885/

27 4 0
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com