[英]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.