【问题标题】:XML uppercase element values in JavaJava中的XML大写元素值
【发布时间】:2019-06-26 03:32:10
【问题描述】:

我有一个如下所示的 ByteArrayOutputStream:

<GENERAL>
        <City>Barcelona</City>
        <PostalCode>3061</PostalCode>   
</GENERAL>

在 java 中是否有一种快速的方法可以将其与以下内容联系起来:

<GENERAL>
            <CITY>Barcelona</CITY>
            <POSTALCODE>3061</POSTALCODE>   
  </GENERAL>

仅在标签内大写。

谢谢!

【问题讨论】:

    标签: java xml uppercase


    【解决方案1】:

    在大多数情况下,一个简单的文本替换就足够了。

    Path path = Paths.get("general.xml");
    byte[] data = Files.readAllBytes(path);
    String xml = new String(data, StandardCharsets.UTF_8);
    
    xml = Pattern.compile("(</?[-\\w]+)")
        .matcher(xml)
        .replaceAll(mr -> mr.group().toUpperCase());
    
    data = xml.getBytes(StandardCharsets.UTF_8);
    Files.write(path, data);
    

    对于不具备该版本 replaceAll 的 java 8 及更早版本:

    Matcher m = Pattern.compile("(</?[-\\w]+)")
        .matcher(xml);
    StringBuffer sb = new StringBuffer();
    while (m.find()) {
        m.appendReplacement(sb, m.group().toUpperCase());
    }
    m.appendTail(sb);
    xml = sb.toString();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-14
      • 1970-01-01
      • 2015-10-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多