最近有个需求需要解析一个.g类型的文件,并且修改里面的属性值,重新保存。文件结构和xml很类似
首先尝试了用jsoup来解析,但是用parse转换后,会生成html的标签,而且会把文件里标签名全部改成小写。
然后用了dom4j来解析:
//path 文件路径
public static void renameHTMLTitle(String path) throws IOException, DocumentException {
File f = new File(path);
if (f.exists()) {
SAXReader reader = new SAXReader();
Document document = reader.read(f);
Element rootElem = document.getRootElement();
Element layEleme = rootElem.element("Layer");
List contactElem = layEleme.elements("ConnectLine");//ConnectLine
for(int i=0;i Element conele = (Element) contactElem.get(i); //获取节点下某个属性的值 String link = conele.attribute("link").getValue(); String[] result = link.split(";"); Boolean flag = true; //下面是我自己的处理逻辑方法 for (int k = 0; k < result.length; k++) { String[] sps = result[k].split(","); String linksid = sps[2]; if(flag){ String str[] = {"Bus","CBreaker","Disconnector","Transformer2","Transformer3","GroundDisconnector"}; List for(String value:lists){ flag = chngeData(layEleme,conele,value,linksid); if(!flag){ break; } } }else{ break; } } } XMLWriter writer = new XMLWriter(new FileWriter("E:\\Tianyuan\\contact.g")); writer.write(document); writer.close(); } }