SAXReader解析xml文件出现该错误:Error on line 1 of document : 在处理指令目标和数据之间需要有空格

String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
                +"<zfjl><row><tradeNo>201902261307031</tradeNo><sj>2019-02-26 13:07:03.473</sj><rybh>001</rybh><skrxm>陈敏</skrxm><je>1.0000</je><zjhm>321324199407021035</zjhm><skrzjhm>321324199407021035</skrzjhm></row></zfjl>";

我是想将该xmlStr字符串解析,但报错误:Error on line 1 of document  : 在处理指令目标和数据之间需要有空格,我尝试了很多次,发现是xml的文件头出现了问题,所以我的解决方案是:

xml =xml.replace("<?xml version=\"1.0\" encoding=\"UTF-8\"?>", "").replace("\n","").replace(" ","");

将"<?xml version=\"1.0\" encoding=\"UTF-8\"?>"替换为空。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SAX(Simple API for XML)是一种基于事件驱动的 XML 解析技术,SAX 解析器在解析 XML 文档时,采用了事件驱动的方式,它并不需要先将整个 XML 文档解析到内存中,而是在解析的过程中,按照 XML 文档的结构顺序,逐个读取元素和属性,并触发相应的事件,应用程序可以在事件发生时,对其进行处理SAX 解析器一般使用回调函数来处理事件。 在 Java 中,可以使用 SAXParser 类来解析 XML 文档。使用 SAXParser 解析 XML 文档的步骤如下: 1. 创建 SAXParser 对象 2. 实现 DefaultHandler 类,重写它的方法来处理 SAX 事件 3. 调用 SAXParser 的 parse() 方法来解析 XML 文档,传入 DefaultHandler 对象作为参数 下面是一个使用 SAXParser 解析 XML 文档的示例代码: ```java import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; public class SAXReaderDemo { public static void main(String[] args) throws Exception { // 创建 SAXParser 对象 SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser parser = factory.newSAXParser(); // 解析 XML 文档 parser.parse("books.xml", new MyHandler()); } } class MyHandler extends DefaultHandler { @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 { // 处理字符数据 String str = new String(ch, start, length); System.out.println("解析到字符数据: " + str); } } ``` 上面的代码解析了一个名为 books.xml 的 XML 文档,输出了文档中每个元素的开始事件、结束事件和字符数据。你可以根据自己的需求,重写 DefaultHandler 中的方法,来处理不同的 SAX 事件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值