簡體   English   中英

嘗試解析XML文件時如何停止截斷我的XML文件

[英]How to stop my XML file from being truncated when I try and parse the file

當我的程序嘗試從XML配置文件讀取時,出現以下錯誤:

org.xml.sax.SAXParseException; systemId:文件:/home/sara/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/PoseidonWebserviceWAR_v12/config.xml; lineNumber:74; columnNumber:20; XML文檔結構必須在同一實體內開始和結束。

經過一番閱讀之后,我相當確定這是因為解析器正在截斷我的XML文件,導致程序認為我沒有格式正確的XML。 但是,由於我是我正在制作的Web項目的新手,因此我在調試此問題上大失所望。

另一個奇怪之處是:我的Web項目已經運行了好幾個星期,現在一切正常,但是現在突然我收到了這個錯誤? 誰能解釋一下?

以下代碼來自我定義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);

同樣,這些方法已經運行了一段時間了,但是現在文件突然被截斷了。 是什么原因造成的?

---- UPDATE ----這是我的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>

您顯示給我們的文件格式不正確。 文件末尾沒有</Config>結束標簽。 加一。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM