最近在写一个工具时,java 解析Xml时,出现下面异常:
java.net.MalformedURLException: unknown protocol: e
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
发现原因是xml文件放置在中文路径下,因为如果是英文路径就没有问题了。
在上网找半天也没有发现好的解决方案。在同事点拔下,将中文路径下文件先读取,放在英文路径下,再使用就没有问题。
但是对于我的这个程序,我找到好方法:
之前代码:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder;
builder = factory.newDocumentBuilder();
Document document = builder.parse(xmlPath);\\直接将路径名给builder.
但是如果路径有中文就会报上面的异常;
修改后代码:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder;
builder = factory.newDocumentBuilder();
File file=new File(xmlPath); //将文件读取,这样路径如果有中文一样可以正常读取
Document document = builder.parse(file); //将file传给DocumentBuilder,
没有上面异常可以正常读取。
我认为DocumertBuilder这个类对文件的读取可能不够全面吧,所以无法处理读取中文路径下的文件。如果用File先读取,就没有问题。
分享到:
相关推荐
1. **使用静态工厂方法**:Java 7引入了`java.net.URI`类,它提供了更严格的URL校验。可以使用`URI`的`toURL()`方法来创建URL对象,这样可以在创建时就发现格式错误。 2. **使用第三方库**:如Apache Commons Lang的...
项目中碰到的,记录一下解决方案
import java.net.MalformedURLException; import java.net.URL; public class UrlHtml { @SuppressWarnings("deprecation") public static void main(String[] s) throws IOException{ try { URL ...
41. `java.net.MalformedURLException`:当URL格式不正确时抛出的异常。 42. `android.content.Context`:Android中的Context是应用程序环境的抽象表示。 43. `android.view.View`:Android UI系统的基础,表示...
- `java.net.MalformedURLException`: 处理创建URL时可能出现的异常。 2. **创建音频播放器类** 为了实现音频播放的功能,我们首先需要创建一个名为`JavaClip`的类。这个类继承自`Frame`类,并且包含了一个静态...
本文实例讲述了Android中ImageView使用网络图片资源的方法。分享给大家供大家参考。具体如下: 很多时候我们不想把东西都放在APK里面,...import java.net.MalformedURLException; import java.net.URL; import androi
1.采用的形式为:java application 2.需要实现的主要功能是: (1)不同用户的登录模块 (2)附加背景音乐 三、概要设计 该程序可以实现用户登录、放大、缩小、上一张、下一张、播放照片等功能。主要使用的工具...
- **错误记录**:在命令窗口中可能会出现如`java.net.MalformedURLException: unknown protocol: javascript`等错误,这通常是因为爬虫遇到无法解析的链接类型(例如JavaScript链接)。 #### 三、搜索测试 1. **...
- **Socket编程**:基于TCP的网络通信,主要涉及`java.net.Socket`和`java.net.ServerSocket`类。Socket类用于客户端,与服务器建立连接并进行数据交换;ServerSocket类用于服务器端,监听特定端口,等待客户端的...
在处理Base64加密的URL时,可能会遇到一些问题,例如Java的`java.net.URL`类无法直接解析包含Base64编码的URL。这个问题通常发生在尝试从Base64编码的字符串中构建URL时,因为URL规范要求其组成部分必须符合特定的...
在Java中,`java.net`包提供了必要的类和接口来实现这一目标。本章将深入探讨如何利用这些工具来创建网络应用。 首先,我们来了解一个核心概念——URL(Uniform Resource Locator),即统一资源定位符。URL是互联网...
import java.net.MalformedURLException; import java.net.URL; import java.util.List; import java.util.Map; public class HttpTest { private HttpURLConnection hc = null; private static final String ...
首先,需要引入必要的jar包,包括java.awt.image.BufferedImage、java.io.ByteArrayOutputStream、java.io.File、java.io.FileOutputStream、java.net.MalformedURLException、java.net.URL、javax.imageio.ImageIO...
import java.net.MalformedURLException; import java.util.Properties; import java.util.Scanner; import org.codehaus.xfire.XFireFactory; import org.codehaus.xfire.client.XFireProxyFactory; import org....
import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; public class Spider { public static void main(String[] args) { String filepath = "d:/124.html"; String ...
在处理URL时,常见的异常有MalformedURLException(格式错误)、IOException(网络问题)等,需适当捕获并处理。 七、实战应用 1. 下载文件:通过URL连接获取InputStream,然后使用FileOutputStream将内容写入本地...
import java.net.MalformedURLException; import java.net.URL; public class ScrubSelectedWeb { private final static String CRLF = System.getProperty("line.separator"); public static void main(String...