`
jxuin
  • 浏览: 30048 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

删除xml注释

阅读更多
import java.io.BufferedReader;   
import java.io.BufferedWriter;
import java.io.File;   
import java.io.FileReader;   
import java.io.FileWriter;
import java.util.Scanner;
  
/**  
 * @author winnie  
 *   
 */  
public class DelComInXml {   
  
    private static final char TAG1 = '<';   
  
    private static final char TAG2 = '!';   
  
    private static final char TAG3 = '-';   
    
    private static final char TAG4 = '>'; 
       
    //斜杠   
    private static final int TYPE_TAG1 = 1;   
       
    //星号   
    private static final int TYPE_TAG2 = 2;   
  
    // 双斜杠类型的注释   
    private static final int TYPE_TAG3 = 3;  
    
//  /*的注释
    private static final int TYPE_TAG4 = 4;   
  
    public static char[] del(char[] _target, int _start, int _end) {   
        char[] tmp = new char[_target.length - (_end - _start + 1)];   
        System.arraycopy(_target, 0, tmp, 0, _start);   
        System.arraycopy(_target, _end + 1, tmp, _start, _target.length - _end   
                - 1);   
        return tmp;   
    }   
  
    public static String delComments(String _target) {   
        int preType = 0;   
        int cur = -1, token = -1;   
        char[] input =  _target.toCharArray();   
        for (cur = 0; cur < input.length; cur++) {   
            if (input[cur] == TAG1) {   
            	if(preType == TYPE_TAG1){
            		preType = TYPE_TAG1;
            	}else if((input[cur+1]==TAG2)&&(input[cur+2]==TAG3)&&(input[cur+3]==TAG3)){
            		preType = TYPE_TAG1;
            		token = cur;   
            	}
            } else if(input[cur] == TAG4){
            	if(preType == TYPE_TAG1){
            		if((input[cur-1] == TAG3)&&(input[cur-2] == TAG3)){
            			input = del(input, token, cur);   
                		cur = token - 1;   
                		preType = 0;   
            		}
            	}
            }
        }
        return new String(input);   
    }   
  
    public static void main(String[] args) {   
        try {   
         Scanner sc =new Scanner(System.in);
        	System.out.println("输入目录:");
        	String dirname = sc.next();
        	File dir = new File(dirname);   
        	File[]   listfile   =   dir.listFiles();  
        	for(int i = 0;i<listfile.length;i++)
        	{
        		BufferedReader reader = new BufferedReader(new FileReader(listfile[i]));   
                StringBuilder content = new StringBuilder();   
                String tmp = null;   
                while ((tmp = reader.readLine()) != null) {   
                    content.append(tmp);   
                    content.append("\n");   
                }   
                String target = content.toString();   
                String target1 = delComments(target); 
                File f = new File(listfile[i]+".bak");
                BufferedWriter output = new BufferedWriter(new FileWriter(f));
                output.write(target);
                output.close();
                BufferedWriter output1 = new BufferedWriter(new FileWriter(listfile[i]));
                output1.write(target1);
                output1.close();
        	}
        } catch (Exception e) {   
  
        }   
    }
}  



分享到:
评论

相关推荐

    删除VB注释工具

    同时,如果代码中含有依赖注释的特殊语法结构,例如XML文档元素,使用注释删除工具前需谨慎,以免影响代码的正确性。 总的来说,“删除VB注释工具”是面向VB开发者的实用辅助软件,能够帮助他们快速清理代码中的...

    C#删除注释工具

    在IT行业中,编程语言的注释是代码可读性和维护性的重要组成部分,但有时在特定情况下,如构建最小化文件或进行代码混淆时,可能需要删除这些注释。"C#删除注释工具"就是这样一款实用程序,专门设计用于从C#源代码...

    易语言XMLtree模块支持CDATAUTF8XML注释自主的XML解析引擎

    易语言XMLtree模块支持CDATAUTF8XML注释自主的XML解析引擎源码,数据_取出,数据_导入,数据_释放,节点_取出,节点_删除,节点_替换,节点_插入,节点_数据_取实际名称,私有_CDATA替换并编号,私有_解析XML数据,私有_删空白...

    tinyxml库文件及其用例有注释

    TiXmlComment用于添加、删除和访问注释,而TiXmlDeclaration用于处理XML文件头信息,如版本号和编码。 6. **TiXmlCursor**:虽然在TinyXML的官方文档中未提及,但可能在某些实现或示例中存在。它通常用于遍历XML...

    删除代码中的注释

    - 对于XML、HTML等结构化文件,它们的注释格式(`&lt;!--`和`--&gt;`)也需要特殊处理,避免破坏文档结构。 6. **代码版本控制**: 在执行这样的操作之前,一定要确保你的代码已经在版本控制系统(如Git)中提交,这样...

    VB生成和删除XML文件节点的方法.rar

    VB生成和删除XML文件节点的方法,演示代码,如何在VB环境下正确使用XML文件,创建节点和修改节点,以及删除节点内容,XML目前应用广泛,值得掌握。加入了比较详细的注释,希望对大家有所帮助,另外正在学习VB解析...

    解决XML节点删除后会留下一个空节点的问题

    在删除XML节点时,我们的目标是彻底移除它,不留下任何痕迹。 问题的关键在于,许多XML解析器和库在处理节点删除时,可能不会立即从DOM(Document Object Model)树中物理地移除它们。DOM是一种将XML文档转换为内存...

    易语言模块 XMLDOM 解析 构造 获取 更改 添加 删除 遍历元素 格式化XML

    换句话说:XML DOM 是用于获取、更改、添加或删除 XML 元素的标准。 模块简介: 1、XMLDOMDocument类: XML对象文档 -&gt;操作创建或读写(元素、节点、属性、注释)等 2、IXMLDOMNode类:每个元素或节点基本都会有的...

    删除注释工具类

    "删除注释工具类"的工作原理可能是通过解析Java源代码文件,识别并定位到特定类型的注释,如Javadoc注释、行内注释(//)和块注释(/*...*/),然后安全地移除这些注释,同时保持代码结构的完整。这个工具可能接受...

    C# Winform 操作Xml(显示,添加,删除,修改)解析任何Xml

    删除XML元素同样简单。假设你要删除名为`&lt;item&gt;`的子元素,其`@id`属性值为`123`: ```csharp // 使用XDocument var itemToRemove = doc.Descendants("item").FirstOrDefault(x =&gt; (int)x.Attribute("id") == 123);...

    QT使用TinyXML开源库解析XML文件

    在实际应用中,你可以根据需要对解析的XML数据进行操作,例如读取特定的节点值、修改元素属性、删除或添加新的元素等。TinyXML库提供了一套简洁的API,使得XML操作变得直观易懂。 通过这个例子,你可以了解如何在QT...

    Qt5 XML文件的解析,增删改查节点。

    QDomElement类表示XML文档中的元素节点,而QDomNode类是所有节点类型的基类,包括元素、文本、注释等。 接下来,我们来看看如何进行XML的增、删、改、查操作: 1. **添加节点**: - 使用QDomDocument的...

    tinyxml2解析XML文件读取数据

    - 库的主要类包括`XMLDocument`(XML文档对象)、`XMLElement`(XML元素)、`XMLText`(XML文本)、`XMLComment`(XML注释)和`XMLAttribute`(XML属性)等。 2. **解析XML文件** - 使用`XMLDocument::LoadFile()...

    C++ XML文件解析库 tinyxml2

    解析完成后,文档的结构被映射为一系列的节点,包括元素(XMLElement)、文本(XMLText)、注释(XMLComment)等。 2. **元素操作**:`XMLElement`是XML文档的核心,代表XML文档的节点。你可以通过`...

    VC++解析XML完整文件,包括创建,读取,添加,删除

    本文将详细介绍如何使用VC++结合MFC(Microsoft Foundation Classes)库来操作XML文件,包括创建、读取、添加和删除XML节点。 首先,你需要了解XML的基本概念。XML是一种自描述性的标记语言,通过标签来定义数据...

    各种开发语言注释清理工具

    这个名为"ClearMark软件注释清理工具.exe"的程序显然具备了处理这三种语言注释的能力,并且允许用户自定义清理规则,这意味着它可能可以扩展到其他语言,或者处理特定格式的注释,比如XML注释、特殊标记等。...

    asp.net操作xml 操作大全

    在提供的源码文件“Asp[1].net+操作XML+源码.rar”中,可能包含了具体的ASP.NET XML操作示例,包括如何创建XML文件、读取XML文件、更新XML节点以及删除XML节点的代码片段。而“WebSite2”可能是包含一个完整的Web...

    QXmlWrapper,实现XML文件的创建、删除以及元素节点的增加、删除、修改与查找等。

    删除XML文件可以由`removeFile()`方法完成,它接受文件路径作为参数,使用QFile的remove()函数来删除指定的XML文件。 3. **元素节点的增加**: 要向XML文件添加元素,可以使用`addElement()`方法。该方法需要元素...

    根据XML模版自动生成

    这些库提供了API,用于添加、修改和删除XML元素及属性,从而根据模板填充数据。 - DOM(Document Object Model)模型允许开发人员以树形结构加载整个XML文档,然后遍历并修改其内容。 - SAX(Simple API for XML...

    tinyXMl解析XMl文件

    5. **TiXmlComment** 和 **TiXmlDeclaration**: 分别用于处理XML文档的注释和声明部分。 6. **TiXmlParser**: TinyXML的解析器,负责读取XML文件并将其转换为TiXMLDocument对象的内部表示。 TinyXML的使用步骤通常...

Global site tag (gtag.js) - Google Analytics