带冒号的 Java SPLIT : and xml

标签 java xml split tokenize

我必须使用 : 拆分键值,但问题是该值是 XML。

("User1":"<?xml version=\"1.0\"?><presence xmlns=\"urn:ietf:params:xml:ns:pidf\" xmlns:dm=\"urn:ietf:params:xml:ns:pidf:data-model\" xmlns:rpid=\"urn:ietf:params:xml:ns:pidf:rpid\" xmlns:c=\"urn:ietf:params:xml:ns:pidf:cipid\" entity=\"ivaxer@tipmeet.com\"></presence>")

我想要的是一个键为 User1、值为 XML 的映射。

我尝试了 input.split(":"); 但这不起作用,因为它分割了 xml 命名空间中的所有内容。我尝试了 input.split("\\\":\""); 这没有任何作用。

也许一些正则表达式可以提供帮助,但我不知道它到底是什么。

最佳答案

如果您的 key 不包含冒号,您可以尝试以下操作:

    public static void main(String[] args) {
    final String str = "\"User1\":\"<?xml version=\"1.0\"?><presence xmlns=\"urn:ietf:params:xml:ns:pidf\" xmlns:dm=\"urn:ietf:params:xml:ns:pidf:data-model\" xmlns:rpid=\"urn:ietf:params:xml:ns:pidf:rpid\" xmlns:c=\"urn:ietf:params:xml:ns:pidf:cipid\" entity=\"ivaxer@tipmeet.com\"></presence>";
    final int firstIndexOfColon = str.indexOf(':');
    if(firstIndexOfColon >= 0) {
        final String key = str.substring(0, firstIndexOfColon);
        final String val = ((firstIndexOfColon + 1) < str.length()) ? str.substring(1 + firstIndexOfColon) : "Empty value string";
        System.out.println(key);
        System.out.println(val);
    } else {
        System.out.println("No delimiter found");
    }
}

否则,您必须更精确地指定语法,以便准备正则表达式。

关于带冒号的 Java SPLIT : and xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36978102/

相关文章:

python - 从一列复制字符串的一部分并将其放入新的 Pandas 列中

python - swift 将一串字母分成3s

java - 使用 Univocity 在输出 CSV 中设置自定义 header

java - 无法在 ListView 中收听 setOnItemClickListener - Android

java - 如何获得给定日期范围内的天数?

xml - XML 模式中的条件

java - Spring应用程序上下文无法加载配置文件

sql-server - 使用nodes()方法分解XML

xml - 使用 Spark/Scala 从 XML 记录中提取元素

Java:使用带有多个分隔符的 split 函数