xml解析出现问题,求解答,要被逼疯

沁海棠 2017-02-26 10:01:13
package xml;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class PersonHandler extends DefaultHandler{

@Override
public void startDocument() throws SAXException {

System.out.println("文档处理开始");
}

@Override
public void endDocument() throws SAXException {

System.out.println("文档处理结束");
}

@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {

System.out.println("开始处理一个元素"+qName);
}

@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {

System.out.println("结束处理一个元素"+qName);
}

@Override
public void characters(char[] ch, int start, int length)
throws SAXException {

System.out.println(new String(ch,start,length));
}

}






package xml;

import java.io.IOException;

import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.SAXException;

public class ParseDemo01 {
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
//获取解析工程
SAXParserFactory factory = SAXParserFactory.newInstance();
//从解析工厂中获取解析器
SAXParser parse = factory.newSAXParser();
//加载文档,注册处理器
//编写处理器
PersonHandler p = new PersonHandler();
parse.parse(Thread.currentThread().getContextClassLoader().getResourceAsStream("xml/person.xml"), p);
}
}


xml文件
<?xml verstion="1.0" edcoding="UTF-8"?>
<test>
<Name>学生</Name>
</test>



文档处理开始
Exception in thread "main" org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 7; 应该有伪属性名。
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1472)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanPseudoAttribute(XMLScanner.java:613)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanXMLDeclOrTextDecl(XMLScanner.java:458)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanXMLDeclOrTextDecl(XMLDocumentFragmentScannerImpl.java:948)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$XMLDeclDriver.next(XMLDocumentScannerImpl.java:770)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:443)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:841)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:770)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:327)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:195)
at xml.ParseDemo01.main(ParseDemo01.java:20)
...全文
95 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
李德胜1995 2017-02-26
引用 7 楼 qinhaotong 的回复:
[quote=引用 4 楼 shnulaa 的回复:] <?xml verstion="1.0" edcoding="UTF-8"?> <test> <Name>学生</Name> </test> verstion -> version
大哥改了以后依旧报错 应该有伪属性名 [/quote]encoding也写错了
回复
李德胜1995 2017-02-26
引用 7 楼 qinhaotong 的回复:
[quote=引用 4 楼 shnulaa 的回复:] <?xml verstion="1.0" edcoding="UTF-8"?> <test> <Name>学生</Name> </test> verstion -> version
大哥改了以后依旧报错 应该有伪属性名 [/quote]<?xml version="1.0" encoding="UTF-8"?>
回复
沁海棠 2017-02-26
引用 4 楼 shnulaa 的回复:
<?xml verstion="1.0" edcoding="UTF-8"?> <test> <Name>学生</Name> </test> verstion -> version
大哥改了以后依旧报错 应该有伪属性名
回复
李德胜1995 2017-02-26
引用 3 楼 qinhaotong 的回复:
[quote=引用 1 楼 pany1209 的回复:] at xml.ParseDemo01.main(ParseDemo01.java:20)20行是啥?
parse.parse(Thread.currentThread().getContextClassLoader().getResourceAsStream("xml/person.xml"), p);在线等。[/quote]路径从src开始,src/......xml
回复
李德胜1995 2017-02-26
引用 3 楼 qinhaotong 的回复:
[quote=引用 1 楼 pany1209 的回复:] at xml.ParseDemo01.main(ParseDemo01.java:20)20行是啥?
parse.parse(Thread.currentThread().getContextClassLoader().getResourceAsStream("xml/person.xml"), p);在线等。[/quote]把xml放在你当前包下用parse.parse(new FileInputStream("路径"), new PersonHandler());就可以了
回复
晓风吹雾 2017-02-26
<?xml verstion="1.0" edcoding="UTF-8"?> <test> <Name>学生</Name> </test> verstion -> version
回复
沁海棠 2017-02-26
引用 1 楼 pany1209 的回复:
at xml.ParseDemo01.main(ParseDemo01.java:20)20行是啥?
parse.parse(Thread.currentThread().getContextClassLoader().getResourceAsStream("xml/person.xml"), p);在线等。
回复
沁海棠 2017-02-26
parse.parse(Thread.currentThread().getContextClassLoader().getResourceAsStream("xml/person.xml"), p);现在等
回复
李德胜1995 2017-02-26
at xml.ParseDemo01.main(ParseDemo01.java:20)20行是啥?
回复
相关推荐
发帖
Java SE
创建于2007-09-28

6.1w+

社区成员

Java 2 Standard Edition
申请成为版主
帖子事件
创建了帖子
2017-02-26 10:01
社区公告
暂无公告