Java 忽略文档生成器,SAX错误
我正在读取大约100个XML文件,有些文件没有结束标记,所以我得到了一个错误。我希望java忽略这些错误并继续处理下一个文件。 这是我的密码: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;
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块,以避免对第一个坏文件进行阻塞。您希望您的程序以何种方式忽略缺少关闭文档错误?只是成功地解析它,就像它实际上已经关闭一样,还是放弃解析并继续下一个文件?