[英]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.