现有的xml格式不符合程序的要求,于是动手写一个格式化xml的小工具。
现有的数据格式是这样的

格式化之后的效果

格式化xml的方法有很多,我使用的是Dom4j方法
public class FormatXml {
public static void main(String[] args) throws DocumentException, IOException {
String inFile=args[0];
String outFile=args[1];
SAXReader reader=new SAXReader();
// File file=new File("jzw.kml");
File file=new File(inFile);
Document document=reader.read(file);
Element disElement=null;
Element valElement=null;
Element dataElement=null;
Element root=document.getRootElement();
Element Document=root.element("Document");
Element Folder=Document.element("Folder");
List<Element> placemarkList=Folder.elements("Placemark");
for(Element Placemark :placemarkList) {
Element ExtendedData=Placemark.element("ExtendedData");
Element SchemaData=ExtendedData.element("SchemaData");
List<Element> elementList=SchemaData.elements();
for(Element element :elementList ) {
String attrVal=element.attributeValue("name");
dataElement =ExtendedData.addElement("Data");
dataElement.setText("");
disElement=dataElement.addElement("displayName");
disElement.setText(attrVal);
valElement=dataElement.addElement("value");
valElement.setText(element.getText());
element.detach();
}
SchemaData.detach();
}
FileOutputStream outputStream=new FileOutputStream(outFile);
// FileOutputStream outputStream=new FileOutputStream("a.xml");
OutputFormat outputFormat=new OutputFormat();
outputFormat.setIndent(true);
outputFormat.setNewlines(true);
outputFormat.setEncoding("utf-8");
XMLWriter writer=new XMLWriter(outputStream,outputFormat);
writer.write(document);
writer.close();
}
}
671

被折叠的 条评论
为什么被折叠?



