解析带DTD文档的XML文件时出错
我的DTD文档如下:
<!ELEMENT students (student+)>
<!ELEMENT student (Name,Department,Class,Course+)>
<!ATTLIST student ID CDATA #REQUIRED>
<!ELEMENT Name (#PCDATA)>
<!ELEMENT Department (#PCDATA)>
<!ELEMENT Class (#PCDATA)>
<!ELEMENT Course (CName,ExamDate,Teacher,CMark,CTime,CType,Score)>
<!ELEMENT CName (#PCDATA)>
<!ELEMENT ExamDate (#PCDATA)>
<!ELEMENT Teacher (#PCDATA)>
<!ELEMENT CMark (#PCDATA)>
<!ELEMENT CTime (#PCDATA)>
<!ELEMENT CType (#PCDATA)>
<!ELEMENT Score (#PCDATA)>
在eclipse里可以生成对应的xml文件:
<?xml version="1.0" encoding="gb2312" standalone="no"?>
<!DOCTYPE students SYSTEM "student.dtd">
<students>
<student ID="103220533">
<Name>学生1</Name>
<Department>计算机系</Department>
<Class>网通班</Class>
<Course>
<CName>Java</CName>
<ExamDate>2006-12-29</ExamDate>
<Teacher>龚根华</Teacher>
<CMark>6</CMark>
<CTime>96</CTime>
<CType>主修</CType>
<Score>88</Score>
</Course>
</student>
</students>
然后我再用DOM对该xml文件进行解析:
DocumentBuilderFactory domfac;
DocumentBuilder docBuilder;
Document doc;
InputStream in;
Element root;
NodeList students;
domfac = DocumentBuilderFactory.newInstance();
try{
docBuilder = domfac.newDocumentBuilder();
in = new FileInputStream("student.xml");
doc = docBuilder.parse(in);
root = doc.getDocumentElement();
students = root.getChildNodes();
............
}catch(ParserConfigurationException e){
e.printStackTrace();
}catch(FileNotFoundException e){
e.printStackTrace();
}catch(SAXException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
............
调试时出现如下错误:
org.xml.sax.SAXParseException: Relative URI "student.dtd"; can not be resolved without a base URI.
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3182)
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3176)
at org.apache.crimson.parser.Parser2.resolveURI(Parser2.java:2758)
at org.apache.crimson.parser.Parser2.maybeExternalID(Parser2.java:2730)
at org.apache.crimson.parser.Parser2.maybeDoctypeDecl(Parser2.java:1129)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:489)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:305)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:442)
at org.apache.crimson.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:185)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:98)
at lin.xml.OperateXML.<init>(OperateXML.java:37)
at lin.xml.OperateXML.main(OperateXML.java:71)
Exception in thread "main" java.lang.NullPointerException
at lin.xml.OperateXML.getDate(OperateXML.java:53)
at lin.xml.OperateXML.main(OperateXML.java:72)
急呀~~~在线等,谢谢高手指点.真的不知道怎么解决此问题.
快~~!!!
<!ELEMENT students (student+)>
<!ELEMENT student (Name,Department,Class,Course+)>
<!ATTLIST student ID CDATA #REQUIRED>
<!ELEMENT Name (#PCDATA)>
<!ELEMENT Department (#PCDATA)>
<!ELEMENT Class (#PCDATA)>
<!ELEMENT Course (CName,ExamDate,Teacher,CMark,CTime,CType,Score)>
<!ELEMENT CName (#PCDATA)>
<!ELEMENT ExamDate (#PCDATA)>
<!ELEMENT Teacher (#PCDATA)>
<!ELEMENT CMark (#PCDATA)>
<!ELEMENT CTime (#PCDATA)>
<!ELEMENT CType (#PCDATA)>
<!ELEMENT Score (#PCDATA)>
在eclipse里可以生成对应的xml文件:
<?xml version="1.0" encoding="gb2312" standalone="no"?>
<!DOCTYPE students SYSTEM "student.dtd">
<students>
<student ID="103220533">
<Name>学生1</Name>
<Department>计算机系</Department>
<Class>网通班</Class>
<Course>
<CName>Java</CName>
<ExamDate>2006-12-29</ExamDate>
<Teacher>龚根华</Teacher>
<CMark>6</CMark>
<CTime>96</CTime>
<CType>主修</CType>
<Score>88</Score>
</Course>
</student>
</students>
然后我再用DOM对该xml文件进行解析:
DocumentBuilderFactory domfac;
DocumentBuilder docBuilder;
Document doc;
InputStream in;
Element root;
NodeList students;
domfac = DocumentBuilderFactory.newInstance();
try{
docBuilder = domfac.newDocumentBuilder();
in = new FileInputStream("student.xml");
doc = docBuilder.parse(in);
root = doc.getDocumentElement();
students = root.getChildNodes();
............
}catch(ParserConfigurationException e){
e.printStackTrace();
}catch(FileNotFoundException e){
e.printStackTrace();
}catch(SAXException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
............
调试时出现如下错误:
org.xml.sax.SAXParseException: Relative URI "student.dtd"; can not be resolved without a base URI.
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3182)
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3176)
at org.apache.crimson.parser.Parser2.resolveURI(Parser2.java:2758)
at org.apache.crimson.parser.Parser2.maybeExternalID(Parser2.java:2730)
at org.apache.crimson.parser.Parser2.maybeDoctypeDecl(Parser2.java:1129)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:489)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:305)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:442)
at org.apache.crimson.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:185)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:98)
at lin.xml.OperateXML.<init>(OperateXML.java:37)
at lin.xml.OperateXML.main(OperateXML.java:71)
Exception in thread "main" java.lang.NullPointerException
at lin.xml.OperateXML.getDate(OperateXML.java:53)
at lin.xml.OperateXML.main(OperateXML.java:72)
急呀~~~在线等,谢谢高手指点.真的不知道怎么解决此问题.
快~~!!!
...全文
相关推荐
双层波导耦合增强光束GH位移:复现于2023年OL的1D光子晶体研究结果.pdf
双层波导耦合增强光束GH位移:复现于2023年OL的1D光子晶体研究结果.pdf
29Linux基础命令详解——用户管理.docx
29Linux基础命令详解——用户管理
科技服务机构如何通过数据分析增强服务竞争力?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
vue+springboot基于 Java 的南昌实利广告公司的员工管理系统的设计与实现_oj680rl3毕业设计源码数据库.zip
vue+springboot基于 Java 的南昌实利广告公司的员工管理系统的设计与实现_oj680rl3毕业设计源码数据库.zip
车辆缺陷分割数据集4000张json格式.zip
数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数):4000 标注数量(json文件个数):4000 标注类别数:1 标注类别名称:["defect"] 每个类别标注的框数: defect count = 8740 总框数:8740 使用标注工具:labelme=5.5.0 所在仓库:firc-dataset 图片分辨率:640x640 标注规则:对类别进行画多边形框polygon 重要说明:可以将数据集用labelme打开编辑,json数据集需自己转成mask或者yolo格式或者coco格式作语义分割或者实例分割 特别声明:本数据集不对训练的模型或者权重文件精度作任何保证


