我正在使用jsp服务器,mysql数据库和xsl转换。我有一个从存储到我的电脑的xml文件的链接,以便用xslt翻译它。如果我这样做,一切都很好:
String url="c:\\xampp\\tomcat\\webapps\\examples\\sakias.xml";
Document doc = builder.parse(new File(url)); and so on as usual...
问题是,如果我将URL链接(c:\\xampp\\tomcat\\webapps\\examples\\sakias.xml
)存储在mysql数据库的列中,然后获取它,我会收到以下错误:
org.xml.sax.SAXParseException; systemId: file:///c:/xampp/; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog
编码是否有问题;转义字符;这真的很奇怪。
PS1:是否存在另一种将xml直接存储到sql数据库的解决方案;我的版本不支持xml字段。可以将其存储为字符串转义;
PS2:我将url链接更改为此表单(http:// localhost:8080 / examples / jsp / jsp2 / loginrecord / link_error.xml),但仍然出现相同的错误。我打印它,它很好,但仍然是相同的错误
答案 0 :(得分:0)
您在数据库中的网址不应对\
进行转义。它应该看起来像c:\xampp\tomcat\webapps\examples\sakias.xml
另外,是的,您可以在SQL数据库中存储XML。您不必担心将其转储以进行存储(如果您在Java中构造字符串,则可能需要将其转义),但您应该担心列大小。您可以选择将其存储为TEXT而不是VARCHAR(不存在String SQL类型)。