java.net.malformedURLexception

时间:2014-12-22 10:52:16

标签: java itext

URL stringfile = getXsl("test.xml");
File originFile = new File(stringfile.getFile());

String xml = null;
ByteArrayOutputStream pdfStream = null;
try {
FileInputStream fis = new FileInputStream(originFile);
int length = fis.available();
byte[] readData = new byte[length];

fis.read(readData);
xml = (new String(readData)).trim();
fis.close();            
xml = xml.substring(xml.lastIndexOf("<HttpCommandList>")+17, xml.lastIndexOf("</HttpCommandList>"));
String[] splitxml = xml.split("</HttpCommand>");

for (int i = 0; i < splitxml.length; i++) {
    tmpxml = splitxml[i].trim() + "</HttpCommand>";
    System.out.println("splitxml:" +tmpxml);

    pdfStream = new ByteArrayOutputStream();
    pdf = new com.lowagie.text.Document();
    PdfWriter.getInstance(pdf, pdfStream);
    pdf.open();

    URL xslToUse = getXsl("test.xsl");

    // Here am using some utility class to transform                            
    // generate the XML needed by iText to generate the PDF using MessageBuffer contents
    String iTextXml = XmlUtil.transformXml(tmpxml.toString(), xslToUse).trim();

    // generate the PDF document by parsing the specified XML file
    XmlParser.parse(pdf, new ByteArrayInputStream(iTextXml.getBytes()));

}

对于上面的代码,在Xml Parser中我得到了java.net.malformedURLexception:没有协议 我试图通过解析指定的xml文件来生成pdf文档。

1 个答案:

答案 0 :(得分:0)

我们可能需要实际的xml文件来决定缺少什么。我希望,没有定义协议,就像这样:

192.168.1.2/         (no protocol)
file://192.168.1.2/  (there is one)

网址似乎需要一个。

还可以尝试:

new File("somexsl.xlt").toURI().toURL();

请参阅herehere

它总是有助于破坏完整的堆栈跟踪。没有人知道,实际发生异常的地方,如果你不发布行号。