为什么这个code保持触发的SAXParseException:"" PI不能与XML&QUOT开始;? [英] Why does this code keep triggering the SaxParseException : ""PI must not start with xml"?
问题描述
这code被用于从它的字符串重新presentation一个XML文档。它工作在我小的单元测试正常,但在我的实际的XML数据失败。它触发线是文档的DOC = db.parse(是);
任何想法?
公共静态文档FromString(字符串XML)
{
//从http://www.rgagnon.com/javadetails/java-0573.html
尝试
{
DBF的DocumentBuilderFactory = DocumentBuilderFactory.newInstance();
的DocumentBuilder分贝= dbf.newDocumentBuilder();
InputSource的是=新的InputSource();
is.setCharacterStream(新StringReader(XML)); 文档的DOC = db.parse(是);
doc.normalize(); 返回文档;
}
赶上(例外五)
{
Log.WriteError(无法解析XML,即XML.FromString(字符串));
返回null;
}
}
感谢您的帮助大家。
我丢弃<?XML版本=1.0编码=UTF-8>
来清除此错误。还是不明白这样做的原因可能是,但它仍然工作。
我又找到我缓冲的作家之一(从一个zip文件到内存解压时)没有被刷新,这是导致XML字符串是不完整的。
谢谢大家对你的帮助!
This code is used to generate a XML document from its String representation. It works fine in my small unit tests, but fails in my actual xml data. The line where it triggers is Document doc = db.parse(is);
Any ideas?
public static Document FromString(String xml)
{
// from http://www.rgagnon.com/javadetails/java-0573.html
try
{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
InputSource is = new InputSource();
is.setCharacterStream(new StringReader(xml));
Document doc = db.parse(is);
doc.normalize();
return doc;
}
catch (Exception e)
{
Log.WriteError("Failed to parse XML", e, "XML.FromString(String)");
return null;
}
}
Thanks for your help everyone.
I discarded the <?xml version="1.0" encoding="utf-8"?>
which cleared this error. Still don't understand what the reason for this might be, but it worked nonetheless.
I went on to find one of my buffered writers (when extracting from a zip file into memory) wasn't being flushed, which was causing the xml string to be incomplete.
Thanks everyone for your help!
这篇关于为什么这个code保持触发的SAXParseException:&QUOT;&QUOT; PI不能与XML&QUOT开始;?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!