Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 忽略文档生成器,SAX错误_Java_Xml_Sax - Fatal编程技术网

Java 忽略文档生成器,SAX错误

Java 忽略文档生成器,SAX错误,java,xml,sax,Java,Xml,Sax,我正在读取大约100个XML文件,有些文件没有结束标记,所以我得到了一个错误。我希望java忽略这些错误并继续处理下一个文件。 这是我的密码: package javaapplication1; import java.io.File; import java.io.*; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory;

我正在读取大约100个XML文件,有些文件没有结束标记,所以我得到了一个错误。我希望java忽略这些错误并继续处理下一个文件。 这是我的密码:

   package javaapplication1;    
    import java.io.File;
    import java.io.*;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerException;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.NamedNodeMap;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    import org.xml.sax.SAXException;
    import java.io.IOException;
    import java.io.*;
    import static java.lang.System.*;
    import org.xml.sax.SAXParseException;

    public class JavaApplication1 {


        public static void main(String[] args) throws Exception {
            try {

                System.out.println("PLEASE ENTER FOLDER NAME ");
                System.out.println("             ");
                DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
                DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
                BufferedReader bufferRead = new BufferedReader(new InputStreamReader(System.in));
                String s = bufferRead.readLine();
                 File dir = new File(s);
                String[] children = dir.list();
                for (int i = 0; i < children.length; i++) {
                    String absolutePath = dir + File.separator + children[i];
                    File dir1 = new File(absolutePath);
                       String filename2 = dir.getAbsolutePath() + File.separator + children[i];
                        System.out.println(filename2);                 
                        Document document1 = documentBuilder.parse(filename2);
                        NodeList employees1 = document1.getElementsByTagName("connection");
                        for (int q1 = 0; q1 < employees1.getLength(); q1++) {
                            Node employee = employees1.item(q1);
                            // Node nValue = (Node) nlList.item(0);
                            if (employee == null) {
                                break;
                            } else {
                                NamedNodeMap attribute = employee.getAttributes();
                                Node nodeAttr = attribute.getNamedItem("server");
                                nodeAttr.setTextContent("Ma.com:1531");
                                Node nodeAttr1 = attribute.getNamedItem("service");
                                Node nodeAttr2 = attribute.getNamedItem("port");
                                nodeAttr1.setTextContent("TS6");
                                nodeAttr2.setTextContent("");
                                Node nodeAttr3 = attribute.getNamedItem("username");
                                nodeAttr3.setTextContent("I_USER");
                            }
                        }
                        TransformerFactory transformerFactory1 = TransformerFactory.newInstance();
                        Transformer transformer1 = transformerFactory1.newTransformer();
                        DOMSource domSource1 = new DOMSource(document1);
                        StreamResult streamResult1 = new StreamResult(new File(filename2));
                        transformer1.transform(domSource1, streamResult1);
                    }
                             }
            catch (Exception sae1) 
    {
                sae1.printStackTrace();
            }
                           //}
            }


    }
PackageJavaApplication1;
导入java.io.File;
导入java.io.*;
导入javax.xml.parsers.DocumentBuilder;
导入javax.xml.parsers.DocumentBuilderFactory;
导入javax.xml.parsers.parserConfiguration异常;
导入javax.xml.transform.Transformer;
导入javax.xml.transform.TransformerException;
导入javax.xml.transform.TransformerFactory;
导入javax.xml.transform.dom.DOMSource;
导入javax.xml.transform.stream.StreamResult;
导入org.w3c.dom.Document;
导入org.w3c.dom.Element;
导入org.w3c.dom.NamedNodeMap;
导入org.w3c.dom.Node;
导入org.w3c.dom.NodeList;
导入org.xml.sax.SAXException;
导入java.io.IOException;
导入java.io.*;
导入静态java.lang.System.*;
导入org.xml.sax.SAXParseException;
公共类JavaApplication1{
公共静态void main(字符串[]args)引发异常{
试一试{
System.out.println(“请输入文件夹名称”);
System.out.println(“”);
DocumentBuilderFactory DocumentBuilderFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder DocumentBuilder=documentBuilderFactory.newDocumentBuilder();
BufferedReader bufferRead=新的BufferedReader(新的InputStreamReader(System.in));
字符串s=bufferRead.readLine();
文件目录=新文件;
String[]children=dir.list();
for(int i=0;i
请格式化您的代码并提出问题。Java XML解析器过于严格,通常会标记您可以解决的问题。您可能希望先查看一些清除XML的库,然后再通过解析器运行它们,或者自己编写一些XML修复程序。至少您可以设置一个try/catch块,以避免对第一个坏文件进行阻塞。您希望您的程序以何种方式忽略缺少关闭文档错误?只是成功地解析它,就像它实际上已经关闭一样,还是放弃解析并继续下一个文件?