簡體   English   中英

解析和連接XML標簽中的值

[英]Parsing and concatenating value within XML tag

我目前有一種邏輯,可以解析XML文件並將xml標記及其值映射到列表。 我有幾個帶有“-”字符的標記,這些標記破壞了進一步的映射。 如何刪除它們並連接XML標簽中的字符串?

這是我想關聯的XML示例

<tag-with-dash> ,解析后我需要具有<tagWithDash> 最好使用CamelCase,但也可以使用小寫字母。

這是獲取xml標簽密鑰的邏輯:

protected String getXMLType(String parsingMessage) {
        int start = parsingMessage.indexOf('<', 1) + 1;
        int end = parsingMessage.indexOf('>', start);
        String substring = parsingMessage.substring(start, end);
        if (REGEX_TAG.matcher(substring).matches()) {
            return substring;
        } else {
            LOGGER.error("Invalid tag '{}' using regex pattern '{}'.", substring, REGEX_TAG.pattern());
            return "INVALID";
        }
    }

正則表達式模式:

REGEX_TAG = "^[/A-Z0-9_-]+$"

感謝您的任何幫助!

這是將虛線字符串轉換為駝峰式大小寫的方法

public static String toCamelCase(String s) {    
    StringBuilder sb = new StringBuilder();
    boolean caps = false;
    for (int i = 0; i < s.length(); i++) {
        char c = s.charAt(i);
        if (!Character.isLetter(c)) {
            caps = true;
        } else {
            if (caps) sb.append(Character.toUpperCase(c));
            else sb.append(c);
            caps = false;
        }
    }
    return sb.toString();
}

這樣使用

protected String getXMLType(String parsingMessage) {
    int start = parsingMessage.indexOf('<', 1) + 1;
    int end = parsingMessage.indexOf('>', start);
    String substring = parsingMessage.substring(start, end);
    if (REGEX_TAG.matcher(substring).matches()) {
        return toCamelCase(substring);
    } else {
        LOGGER.error("Invalid tag '{}' using regex pattern '{}'.", substring, REGEX_TAG.pattern());
        return "INVALID";
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM