我如何解析给定的字符串?

时间:2013-09-19 10:34:40

标签: java parsing text-parsing

大家好,我有一个任务来解析一个来自服务器的字符串。

字符串如下:

<first name=$Jon$ last name=$Doe$/><first name=$Doe$ last name=$Jon$/><first name=$r$ last name=$k$/>

,所需的输出是:

first name: Jon
last name: Doe
-------------------
first name: Doe
last name: Jon
-------------------
first name: r
last name: k
-------------------

即,

key: value

我做了一些简单的文本解析,其中包括一个简单的分隔符,如$或%。 但在这种情况下,我不明白如何解析文本。您的帮助将非常有用。

3 个答案:

答案 0 :(得分:0)

使用“将服务器中的$ xml字符串替换为”,将其作为xml文档加载,使用XPath或其他一些机制来解析所需的信息

答案 1 :(得分:0)

可以通过多种方式达成解决方案

  1. 可以在Java上使用XSLT。 (Java提供了像TransformerFactory,Transformer等的api。)
  2. 可以像IDE一样在IDE中使用XSLT。有几个插件可用。
  3. 可以查看www.vogella.com/articles/XSLT/article.html

    1. 可以使用unix脚本执行相同操作。

      How to convert xml file in to a property file using unix shell script

    2. 这不是您问题的确切解决方案,但您可以尝试解决方案。同样,还有许多其他方法可以肯定。

答案 2 :(得分:0)

        Matcher keys = Pattern.compile("[<\\s)](.*?)[=]").matcher(string);
        Matcher values = Pattern.compile("[$](.*?)[$]").matcher(string);
        while(keys.find() && values.find()) {
            System.out.println(keys.group(1)+" : "+values.group(1));
        }