当前位置: 首页 > 知识库问答 >
问题:

致命错误:1:1:prolog中不允许包含内容。组织。xml。萨克斯。SAXParseException

陶山
2023-03-14

我试图用Java读取一个XML文件,然后将其与XML模式进行比较,但我无法克服此错误:

[致命错误]: 1:1: prolog中不允许有内容org.xml.sax.SAXParseExc0019; lineNumber: 1;柱状编号: 1; prolog中不允许有内容。

这是文件读取的开始

try {
        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();          
        Document doc = dBuilder.parse(new InputSource(new StringReader("myfile.xml"))); // ERROR OCCURS HERE

我通过十六进制编辑器扫描了我的XML,但是我没有在里面找到任何奇怪的字符,所以我不知道问题出在哪里

我的文件。xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<Schedule xmlns ="schedule"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:noNamespaceSchemaLocation="schedule.xsd">
    <Lesson>
        <Title>Artificial Intelligence</Title>
        <Lecture Classroom="BA">
            <Day>Wednesday</Day>
            <Time>09-11</Time>
        </Lecture>
        <Professor>Hatzilygeroudis</Professor>
    </Lesson>
    <Lesson>
        <Title>Constraint Satisfaction Problems</Title>
        <Lecture Classroom="B3">
            <Day>Monday</Day>
            <Time>19-21</Time>
        </Lecture>
    </Lesson>
    <Lesson>
        <Title>Knowledge Representation in Web</Title>
        <Lecture Classroom="P200">
            <Day>Friday</Day>
            <Time>15-17</Time>
        </Lecture>
        <Professor>Hatzilygeroudis</Professor>
    </Lesson>
    <Lesson>
        <Title>Artificial Intelligence</Title>
        <Lecture>
            <Day>Monday</Day>
            <Time>19-21</Time>
        </Lecture>
    </Lesson>
    <Lesson>
        <Title>AI Programming</Title>
        <Lecture Classroom="B3">
            <Day>Monday</Day>
            <Time>11-13</Time>
        </Lecture>
    </Lesson>
    <Lesson>
        <Title>Introduction to Procedural Programming</Title>
        <Lecture Classroom="P200">
            <Day>Wednesday</Day>
            <Time>15-17</Time>
        </Lecture>
        <Professor>Papadopoulos</Professor>
    </Lesson>
</Schedule>

共有2个答案

萧修永
2023-03-14

您可能有一个带有字节顺序标记(BOM)的UTF-8文件。它对大多数编辑器来说是不可见的,但可能会干扰解析器。尝试在没有BOM的情况下转换为UTF-8。

范侯林
2023-03-14

StringReader(“myfile.xml”)接受的字符串参数必须是xml,而不是文件名。解析器正在读取字符串文本,myfile。xml,(不是myfile.xml的文件内容)并立即失败,因为xml文档可能不是以m字符开头。

改变

Document doc = dBuilder.parse(new InputSource(new StringReader("myfile.xml")));

Document doc = dBuilder.parse(new InputSource("myfile.xml"));
 类似资料:
  • 我正在使用Java,并试图从一些http链接获取XML文档。我使用的代码是: 不要注意,它是一个特殊的类,就像普通的输入流一样。 使用上面的代码,我有时会得到错误

  • 我正在尝试使用jasperreports,当我尝试运行正在开发的应用程序时,我遇到了下一个错误: 对于我写的代码: 怎么了?。谢谢。xml是这样的,我不知道出了什么问题: 再次感谢。

  • 我试图解析一个xml文件,但它不断地出现异常。我在这里寻找一些解决办法,因为很多人和我有几乎相同的问题,但都是徒劳的。请求和响应似乎是正确的,我已经检查了我的xml,没有发现任何错误。 以下是我的Java代码: 以下是我从服务器得到的xml响应:

  • 我有一个用UTF-16 LE编码的超级简单的XML文档。 我这样加载它(使用): 我通过保存文件并用十六进制编辑器检查它,检查了没有额外的BOM/垃圾符号(前导或任何地方)。XML格式正确。 但是,我仍然得到以下错误: 我上下搜索了这个错误,但他们都说这是BOM的错误,我(据我所知)已经证实不是这样。还有什么不对劲?

  • 问题内容: 我正在尝试调用Web服务,但是遇到了奇怪的行为。我们的服务器上正在运行一个Web服务,但是该代码未向我们开放,因此无法看到墙后发生了什么。该服务的所有者公开了基于Web的测试客户端UI,该UI在文本框中输入内容,并显示对测试目的的响应。此输入框采用以下提到的格式输入 它在此UI上工作正常,但是当我尝试通过Java代码调用此Web服务时,它也将获得连接以及被该服务授权,但是当我尝试调用上