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

当我尝试解析XML文件时,如何防止文件被截断

缑赤岩
2023-03-14

当我的程序试图从XML配置文件中读取时,我收到以下错误:

org.xml.sax.SAXParseException;systemId:file:/home/sara/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/poseidonwebservicewar_v12/config.xml;行号:74;列号:20;XML文档结构必须在同一实体内开始和结束。

另一个奇怪的地方是:我的网络项目已经运行了好几个星期了,现在还不错,但现在我突然出现了这个错误?有人能解释一下吗?

下面的代码来自定义XML读/写操作的类:

DocumentBuilder builder;
Document doc;
...
public XMLReader(String filePath){

      try {
          String f = filePath;
          xmlFile = new File(filePath);
          builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
          doc = builder.parse(xmlFile);

...在另一个类中,我想将元素“LastCurrentState”设置为1234,但由于XML文件被截断,我的读取器无法读取该文件,这里和错误是抛出错误的地方:

XMLReader xmlread = new XMLReader(filepath);
xmlread.setNameofNode(0, "LastCurrentState", 1234);

----更新----这是我的XML文件代码。

<?xml version="1.0" encoding="UTF-8"?>
<Config>
<Sources>
    <Source> 
        <Number>1</Number>
        <Name>Dish1</Name>                  
    </Source>
    <Source> 
        <Number>2</Number>
        <Name>Dish2</Name>
    </Source>
    <Source> 
        <Number>3</Number>
        <Name>Sky1</Name>
    </Source>
    <Source> 
        <Number>4</Number>
        <Name>Sky2</Name>
    </Source>
    <Source> 
        <Number>5</Number>
        <Name>Sky3</Name>
    </Source>
    <Source> 
        <Number>6</Number>
        <Name>Sky4</Name>
    </Source>   
    <Source> 
        <Number>7</Number>
        <Name>Source7</Name>
    </Source>
    <Source> 
        <Number>8</Number>
        <Name>Source8</Name>
    </Source>
</Sources>  
<Targets>
    <Target>
        <Number>1</Number>
        <Name>Corner - TV1</Name>
    </Target>
    <Target>
        <Number>2</Number>
        <Name>Left - TV2</Name>
    </Target>       
    <Target>
        <Number>3</Number>
        <Name>Main - TV3</Name>
    </Target>   
    <Target>
        <Number>4</Number>
        <Name>Right - TV4</Name>
    </Target>   
    <Target>
        <Number>5</Number>
        <Name>Office - TV5</Name>
    </Target>   
    <Target>
        <Number>6</Number>
        <Name>Bar - TV6</Name>
    </Target>   
    <Target>
        <Number>7</Number>
        <Name>Outside - TV7</Name>
    </Target>   
    <Target>
        <Number>8</Number>
        <Name>Downstairs - TV8</Name>
    </Target>           
</Targets>

<Properties>
    <LastCurrentState>EE11111111</LastCurrentState>
    <DeviceName>KeyDigitalMSW</DeviceName>
    <SerialPortName>/dev/ttyS0</SerialPortName>
</Properties>

共有1个答案

梁勇
2023-03-14

你给我们看的文件格式不正确。文件末尾没有结束标记。加一个。

 类似资料:
  • 我正在尝试将java对象转换为xml文件。 这是对象的类: 这是我用来转换对象的类: 当我运行main方法时,我得到了这个堆栈跟踪: 试图寻找解决方案,但仍然无法解决问题。 每个建议都非常感谢,提前感谢

  • 问题内容: 我需要使用Java来读取和处理一些较大的文件,并且我想知道,是否有某种明智的方法来保护文件,使其在我读取和处理文件时不会被其他进程覆盖? 也就是说,可以通过某种方式将其设为只读,使其保持“打开”状态或类似的方式。 这将在Windows环境中完成。 br,Touko 问题答案: 你想要一个FileLock: 为了简单起见,我省略了一个try / finally块,但您不应该在生产代码中使

  • 是否有开源库可以使用java解析junit xml,并获得执行的testsuite名称、testsuite对应的TestCase、失败次数和成功次数等信息?我刚刚看到了junit风格的报表工具,有没有开源库可以在Java中获取这些信息。

  • 本文向大家介绍java如何解析/读取xml文件,包括了java如何解析/读取xml文件的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java解析/读取xml文件的方法,供大家参考,具体内容如下 XML文件 Java 代码: 以上就是本文的全部内容,希望对大家的学习有所帮助。

  • 我有一个XML文件,如 我需要值,即“OEBPS/content.opf”文本。我尝试使用文档生成器和XML解析器,但没有结果。如何遍历该节点并获取值

  • 问题内容: 我正在尝试使用下面的确切结构来解析JSON文件。 我正在使用以下jQuery函数: 我做错什么了吗? 问题答案: 您没有访问正确的元素。不指向,它指向最外面的元素(是它的属性)。该数组包含在: 进一步说明: 如果仅访问属性一次,则无需创建局部变量(但当然,它可能更易读)。 虽然连续使用分号是没有错的,但这是不必要和令人困惑的(至少这使我感到困惑;)