我试图仅根据特定标签拆分大型XML文件(部门) 这是我正在使用的xml
enter code here
<?xml version="1.0" encoding="UTF-8"?>
<Students>
<student>
<name>Student1</name>
<id>470230</id>
</student>
<student>
<name>Student2</name>
<id>25142</id>
</student>
<student>
<name>Student3</name>
<id>55624</id>
</student>
<Department>
<name>Engineering</name>
<id>2251</id>
</Department>
<Department>
<name>Science</name>
<id>3356</id>
</Department>
<Department>
<name>Commerce</name>
<id>2546</id>
</Department>
</Students>
,代码使用如下
import java.io.File;
import java.io.FileReader;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamReader;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stax.StAXSource;
import javax.xml.transform.stream.StreamResult;
public class stax1 {
public static void main(String[] args) throws Exception {
int i=1;
XMLInputFactory xif = XMLInputFactory.newInstance();
XMLStreamReader xsr = xif.createXMLStreamReader(new FileReader("D:/Temp/test.txt"));
xsr.nextTag(); // Advance to statements element
TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer();
while(xsr.nextTag() == XMLStreamConstants.START_ELEMENT) {
File file = new File("out/" + "out" +i+ ".xml");
t.transform(new StAXSource(xsr), new StreamResult(file));
i++;
}
}
}
任何人都可以纠正我只根据部门标签分割xml文件吗? 当前与STAX解析器一起使用的代码和文件大小超过100 MB 目前我正在获得所有学生和部门的输出,但我只是想获得部门。