XML 属性中的空格

如何解决XML 属性中的空格

我有一个像这样的 XML :

<document>
  <root>
    <field1>
      <a 
      Type="anyType">
        <b>Text</b>
      </a>
    <field1>
  </root>
</document>

我想删除 xml 属性 Type 和 xml 字段 a 中的空格

输出应该是这样的:

<document>
  <root>
    <field1>
      <a Type="anyType">
        <b>Text</b>
      </a>
    <field1>
  </root>
</document>

如何在 Java 中执行此操作。

编辑:生成 XML 文件代码如下:

DOMSource domSource = new DOMSource(document);
StringWriter writer = new StringWriter();
StreamResult result = new StreamResult(writer);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.transform(domSource,result);

String fileData = format(writer.toString());

// remove CR(carriage return)
fileData = fileData.replaceAll("&#[a-zA-Z0-9]{2};","");
saveDocumentIntoFile(fileData,fileName);

方法格式()

public String format(String xml) {
        
        try {
            final InputSource src = new InputSource(new StringReader(xml));
            final Node document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(src).getDocumentElement();
            final Boolean keepDeclaration = Boolean.valueOf(xml.startsWith("<?xml"));
            
            final DOMImplementationRegistry registry = DOMImplementationRegistry.newInstance();
            final DOMImplementationLS impl = (DOMImplementationLS) registry.getDOMImplementation("LS");
            final LSSerializer writer = impl.createLSSerializer();
            
            // Set this to true if the output needs to be beautified.
            writer.getDomConfig().setParameter("format-pretty-print",Boolean.TRUE);
            // Set this to true if the declaration is needed to be outputted.
            writer.getDomConfig().setParameter("xml-declaration",keepDeclaration);
            
            return writer.writetoString(document);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

方法 saveDocumentIntoFile()

protected void saveDocumentIntoFile(String fileData,String fileName) throws IOException {
        FileWriter batchFile = new FileWriter(fileName);
        
        batchFile.write(fileData);
        batchFile.close();
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?