java俄文xml解析错误,java – XmlBeans错误:解析String时意外的元素CDATA

我在使用XmlBeans解析xml字符串时遇到问题.问题本身是在J2EE应用程序中,其中字符串本身是从外部系统接收的,但我在一个小型测试项目中复制了该问题.

我找到的唯一解决方案是让XmlBeans解析一个File而不是一个String,但这不是J2EE应用程序中的一个选项.另外,我真的想知道究竟是什么问题,因为我想解决它.

考试来源:

public class TestXmlSpy {

public static void main(String[] args) throws IOException {

InputStreamReader reader = new InputStreamReader(new FileInputStream("d:\\temp\\IE734.xml"),"UTF-8");

BufferedReader r = new BufferedReader(reader);

String xml = "";

String str;

while ((str = r.readLine()) != null) {

xml = xml + str;

}

xml = xml.trim();

System.out.println("Ready reading XML");

XmlOptions options = new XmlOptions();

options.setCharacterEncoding("UTF-8");

try {

XmlObject xmlObject = XmlObject.Factory.parse(new File("D:\\temp\\IE734.xml"), options);

System.out.println("Ready parsing File");

XmlObject.Factory.parse(xml, options);

System.out.println("Ready parsing String");

} catch (XmlException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

XML文件完全符合XSD的im使用.此外,将其解析为File对象工作正常,并为我提供了一个解析的XmlObject.但是,解析xml-String会给出下面的堆栈跟踪.我已经在调试器中检查了字符串本身,并且第一眼看不到它有什么问题,特别是在第1行第1列,我认为如果我正确解释错误,Sax解析器有问题.

堆栈跟踪:

Ready reading XML

Ready parsing File

org.apache.xmlbeans.XmlException: error: Unexpected element: CDATA

at org.apache.xmlbeans.impl.store.Locale$SaxLoader.load(Locale.java:3511)

at org.apache.xmlbeans.impl.store.Locale.parse(Locale.java:713)

at org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:697)

at org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:684)

at org.apache.xmlbeans.impl.schema.SchemaTypeLoaderBase.parse(SchemaTypeLoaderBase.java:208)

at org.apache.xmlbeans.XmlObject$Factory.parse(XmlObject.java:658)

at xmlspy.TestXmlSpy.main(TestXmlSpy.java:37)

Caused by: org.xml.sax.SAXParseException; systemId: file:; lineNumber: 1; columnNumber: 1; Unexpected element: CDATA

at org.apache.xmlbeans.impl.piccolo.xml.Piccolo.reportFatalError(Piccolo.java:1038)

at org.apache.xmlbeans.impl.piccolo.xml.Piccolo.parse(Piccolo.java:723)

at org.apache.xmlbeans.impl.store.Locale$SaxLoader.load(Locale.java:3479)

... 6 more

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值