用java读取xml文件和解析器

用java读取xml文件和解析器,java,xml,Java,Xml,我正在尝试使用FileInputStreamReader类读取XML文件。但是,当我尝试读取大型XML文件时,会出现一些问题。哪种java类更适合读取大型XML文件?解析XML文件最有效的解析器是什么?我认为DOM解析是解析XML文件的好方法 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = factory.newDocumentBuilder()

我正在尝试使用
FileInputStreamReader
类读取
XML
文件。但是,当我尝试读取大型
XML
文件时,会出现一些问题。哪种java类更适合读取大型
XML
文件?解析XML文件最有效的解析器是什么?

我认为DOM解析是解析XML文件的好方法

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = factory.newDocumentBuilder();
Document doc = docBuilder.parse(yourFile);
通过这种方式,您可以开始解析XML文档,然后可以修改节点并更改要更改的内容

TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
DOMSource source = new DOMSource(yourDoc);
StreamResult result = new StreamResult(yourFile);
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.transform(source, result);
第二步是保存所有更改。“setOutputProperty”方法不是强制性的,它只用于为XML文件提供一个良好的缩进