Java 文件过早结束。org.xml.sax.SAXParseException;文件过早结束。[致命错误]:-1:-1:

Java 文件过早结束。org.xml.sax.SAXParseException;文件过早结束。[致命错误]:-1:-1:,java,dom,Java,Dom,我试图在河南菜品.xml中插入一些元素,如何解决我提出的问题 我检查了我的xml,但没有发现任何错误 package com.jerry.xmlwriter; 导入com.jerry.common.XMLConfigUtils; 导入com.jerry.common.XmlTag; 导入org.w3c.dom.Document; 导入org.w3c.dom.Element; 导入org.w3c.dom.Text; 导入javax.xml.transform.Transformer; 导入java

我试图在
河南菜品.xml
中插入一些元素,如何解决我提出的问题

我检查了我的
xml
,但没有发现任何错误

package com.jerry.xmlwriter;
导入com.jerry.common.XMLConfigUtils;
导入com.jerry.common.XmlTag;
导入org.w3c.dom.Document;
导入org.w3c.dom.Element;
导入org.w3c.dom.Text;
导入javax.xml.transform.Transformer;
导入javax.xml.transform.TransformerException;
导入javax.xml.transform.TransformerFactory;
导入javax.xml.transform.dom.DOMSource;
导入javax.xml.transform.stream.StreamResult;
导入java.io.File;
导入java.util.HashMap;
导入java.util.Map;
导入java.util.Objects;
/**
*多姆
*
*@作者徐杰瑞
*/
公共类XmlWriterByDom{
私有静态最终XMLConfigUtils xmlConfig=XMLConfigUtils.getInstance();
公共void xmlInsert(映射xmlNode,字符串xmlPath){
Document doc=xmlConfig.getDocument(xmlPath);
文本节点值;
元素根=doc.getDocumentElement();
元素food=doc.createElement(XmlTag.food);
元素名称=doc.createElement(XmlTag.name);
元素价格=doc.createElement(XmlTag.price);
Element desc=doc.createElement(XmlTag.desc);
nodeValue=doc.createTextNode(xmlNode.get(XmlTag.FOOD));
name.appendChild(nodeValue);
食物.儿童(姓名);
nodeValue=doc.createTextNode(xmlNode.get(XmlTag.PRICE));
price.appendChild(nodeValue);
食品价格;
nodeValue=doc.createTextNode(xmlNode.get(XmlTag.DESC));
描述附加值(nodeValue);
儿童食品(desc);
根。附属物(食物);
试一试{
xmlPath=Objects.requirennull(this.getClass().getClassLoader().getResource(xmlPath)).getPath();
TransformerFactory transformer=TransformerFactory.newInstance();
变压器变压器=变压器。新变压器();
DOMSource=新的DOMSource(doc);
StreamResult=newstreamresult(新文件(xmlPath.toURI().getPath());
转换(源、结果);
}捕获(转换异常e){
e、 printStackTrace();
}
}
公共静态void main(字符串[]args){
Map xmlNode=newhashmap(3);
put(“名称”、“番茄”);
xmlNode.put(“价格”,“10美元”);
xmlNode.put(“描述”、“菜肴”);
新的XmlWriterByDom().xmlsert(xmlNode,“xml/hensian disks.xml”);
}
}
以下是
河南菜品.xml
的内容:

<?xml version="1.0" encoding="UTF-8" ?>
<menu>
    <food>
        <name>鱼香肉丝</name>
        <price>18¥</price>
        <description>经典川菜</description>
    </food>
    <food>
        <name>鲤鱼焙面</name>
        <price>59¥</price>
        <description>开封名菜</description>
    </food>
</menu>

当我尝试删除目标为的已编译文件夹并重新执行时,结果是正确的。文件系统可能真的有问题!

好的,我已经附上了我的XML。XML似乎还可以,它可以用Xerces DOM解析器解析。最可能的问题是文件系统中的文件格式。此问题可能是由于文件中的字节顺序标记造成的。参考当我尝试删除目标名称的已编译文件夹并重新执行时,结果是正确的。可能是文件系统真的有问题
  [Fatal Error] :-1:-1: Premature end of file.
org.xml.sax.SAXParseException; Premature end of file.
    at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
    at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
    at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:205)
    at com.jerry.common.XMLConfigUtils.getDocument(XMLConfigUtils.java:57)
    at com.jerry.xmlwriter.XmlWriterByDom.xmlInsert(XmlWriterByDom.java:29)
    at com.jerry.xmlwriter.XmlWriterByDom.main(XmlWriterByDom.java:71)
Exception in thread "main" java.lang.NullPointerException
    at com.jerry.xmlwriter.XmlWriterByDom.xmlInsert(XmlWriterByDom.java:32)
    at com.jerry.xmlwriter.XmlWriterByDom.main(XmlWriterByDom.java:71)