XMLInputFactory factory = XMLInputFactory.newInstance();
Reader fileReader = new FileReader(xmlFileName);
XMLEventReader reader = factory.createXMLEventReader(fileReader);
while (reader.hasNext()) {
XMLEvent event = reader.nextEvent();
if (event.isStartElement()) {
StartElement element = (StartElement) event;
//process start element
}
if (event.isEndElement()) {
currentParent = (DefaultMutableTreeNode)(currentParent.getParent());
//process end element
}
if (event.isCharacters()) {
Characters characters = (Characters) event;
String text = characters.getData();
if(text.startsWith("\n") || text.startsWith("\r\n") || text.startsWith("\r")) {
continue;
}
//process characters element
}
我对上述代码的问题是,在处理XML文件时,新行被处理为字符节点,我希望有一个标志可以忽略新行。如果可能,请告诉我。
答案 0 :(得分:2)
根据the specification,必须保留空格,除非另有说明:
XML处理器必须始终将文档中未标记的所有字符传递给应用程序。
答案 1 :(得分:2)
尝试阅读this question以获取有关如何做的一些指示。