DocumentBuilder使用#标签解析路径

时间:2017-02-16 13:55:31

标签: java xml path

我正在尝试向文档构建器解析一个xml路径,其中包含一个主题标签(#),并且它不起作用,似乎解析器忽略了#inclusive之后的所有内容。有谁知道我能做什么?

这是代码:

Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(xml.getAbsolutePath());

xml路径如下所示:C:\ Users \ miruna \ e#abc.xml 我得到的错误:java.io.FileNotFoundException: C:\Users\miruna\e

1 个答案:

答案 0 :(得分:0)

您没有明确说明变量xml的类型。但似乎是

File xml = ...;

您正在使用DocumentBuilder.parse(String uri)方法 它以URI字符串作为参数 在URI中,#具有特殊含义, 将路径与片段分开。因此,您会遇到所描述的问题。

要修复它,您可以使用以文件为参数的方法DocumentBuilder.parse(File f)

Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(xml);

或者您可以坚持parse(String uri)方法并修复从文件到URI字符串的转换

Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(xml.toURI().toString());