java - 如何防止xml转换器将空标签转换为单个标签

标签 java xml transformer-model

我正在使用 javax.xml.transform.Transformer将 DOM 源转换为 XML 字符串的类。我在 DOM 树中有一些空元素,这些元素变成了一个我不想要的标签。

如何防止 <sampletag></sampletag>从成为<sampletag/>

最佳答案

我遇到了同样的问题。 这是获得该结果的函数。

public static String fixClosedTag(String rawXml){

    LinkedList<String[]> listTags = new LinkedList<String[]>(); 
    String splittato[] =  rawXml.split("<");

    String prettyXML="";

    int counter = 0;
    for(int x=0;x<splittato.length;x++){
        String tmpStr = splittato[x];
        int indexEnd = tmpStr.indexOf("/>");
        if(indexEnd>-1){
            String nameTag = tmpStr.substring(0, (indexEnd));
            String oldTag = "<"+ nameTag +"/>";
            String newTag = "<"+ nameTag +"></"+ nameTag +">";
            String tag[]=new String [2];
            tag[0] = oldTag;
            tag[1] = newTag;
            listTags.add(tag);
        }
    }
    prettyXML = rawXml;

    for(int y=0;y<listTags.size();y++){
        String el[] = listTags.get(y);

        prettyXML = prettyXML.replaceAll(el[0],el[1]);
    }

    return prettyXML;
}

关于java - 如何防止xml转换器将空标签转换为单个标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3751753/

相关文章:

java - 在 JTable 中使用 "Tab"的 TextArea Focus

xml - 能否将两个给定的 XSD 数据类型连接成一种新的 XSD 数据类型?

machine-learning - 为什么自然语言处理中的 Transformer 需要一堆编码器?

java - 在IntelliJ中编译错误但在eclipse中没有

Java删除或修改File中的一条记录

java - 无法在jetty 9.4.16.v20190411 : receiving FileNotFoundException for jar that is in the war under WEB-INF/lib中部署WAR

javascript - 从 XML DOM 对象中获取完整的 XML 源

php - 使用 PHP xmlwriter 在 xml 文件中添加多个数据

php - 尝试通过在 Laravel 5.2 中实现 ArraySerializer 来删除 Fractal 中的数据