- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为什么 SAXParseException 对 getSystemId() 返回 null?什么是系统标识符?
import java.io.StringReader;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.ErrorHandler;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import org.xml.sax.XMLReader;
public class MainClass {
static public void main(String[] arg) throws Exception{
boolean validate = false;
SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setValidating(validate);
XMLReader reader = null;
SAXParser parser = spf.newSAXParser();
reader = parser.getXMLReader();
reader.setErrorHandler(new MyErrorHandler());
reader.parse(new InputSource(new StringReader(xmlString)));
}
static String xmlString = "<PHONEBOOK>" +
" <PERSON>" +
" <NAME>Joe Wang</NAME>" +
" <EMAIL><a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d7bdb8b297aeb8a2a5a4b2a5a1b2a5f9b4b8ba" rel="noreferrer noopener nofollow">[email protected]</a></EMAIL>" +
" <TELEPHONE>202-999-9999</TELEPHONE>" +
" <WEB>www.java2s.com</WEB>" +
" </PERSON>" +
" <PERSON> " +
"<NAME>Karol</NAE>" + // error here
" <EMAIL><a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="076c6675686b477e6872757462757162752964686a" rel="noreferrer noopener nofollow">[email protected]</a></EMAIL>" +
" <TELEPHONE>306-999-9999</TELEPHONE>" +
" <WEB>www.java2s.com</WEB>" +
" </PERSON>" +
" <PERSON>" +
" <NAME>Green</NAME>" +
" <EMAIL><a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="dcbbaeb9b9b29ca5b3a9aeafb9aeaab9aef2bfb3b1" rel="noreferrer noopener nofollow">[email protected]</a></EMAIL>" +
" <TELEPHONE>202-414-9999</TELEPHONE>" +
" <WEB>www.java2s.com</WEB>" +
" </PERSON>" +
" </PHONEBOOK>";
}
class MyErrorHandler implements ErrorHandler {
public void warning(SAXParseException e) throws SAXException {
show("Warning", e);
throw (e);
}
public void error(SAXParseException e) throws SAXException {
show("Error", e);
throw (e);
}
public void fatalError(SAXParseException e) throws SAXException {
show("Fatal Error", e);
throw (e);
}
private void show(String type, SAXParseException e) {
System.out.println(type + ": " + e.getMessage());
System.out.println("Line " + e.getLineNumber() + " Column "
+ e.getColumnNumber());
System.out.println("System ID: " + e.getSystemId());
System.out.println(e);
}
}
最佳答案
XML 中的“系统标识符”是您从中获取某些内容的物理位置。当您只是解析内存中的字符串时,它根本没有系统标识符,除非您进行额外的调用来给它一个系统标识符。
在这种情况下,您可以调用InputSource.setSystemId
。
关于java - SAXParseException 为 getSystemId() 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5708286/
我有一个 Java 代码 String xml = "/Users/test/xml/test.xml"; // long startTime = System.nanoTime();
为什么 SAXParseException 对 getSystemId() 返回 null?什么是系统标识符? import java.io.StringReader; import
本文整理了Java中net.sf.saxon.query.XQueryFunction.getSystemId()方法的一些代码示例,展示了XQueryFunction.getSystemId()的具
本文整理了Java中com.ctc.wstx.evt.WEntityDeclaration.getSystemId()方法的一些代码示例,展示了WEntityDeclaration.getSystem
本文整理了Java中org.deegree.commons.xml.stax.XMLStreamReaderWrapper.getSystemId()方法的一些代码示例,展示了XMLStreamRea
我是一名优秀的程序员,十分优秀!