1

我在解析方面遇到了真正的问题,我不知道如何处理它。我正在研究一个具有非常不典型的信息返回的数据库。当您发出请求时,响应是纯文本的,我不知道如何解析它。

查询的结果如下所示:

error=0; 
---
name= Pen
detailname= TextMarker Highlighter Pink
---

不涉及 html、XML 或 json - 结果几乎是这样返回的。

我不知道如何在 Java 中解析纯文本。例如,我该如何解析,所以我只能得到 name= 或任何其他类别之后的信息?我曾尝试使用 JSoup,但我无法弄清楚。有经验的人可以解释一下我如何过滤这个吗?

谢谢
保罗

4

2 回答 2

1

因为它看起来像一个 *.properties 文件,我建议

Properties p = new Properties();
p.load(inputStream);

您只需将结果作为 InputStream 或 Reader(即 StringReader),然后可以像 Properties 一样访问它。

String error = p.getProperty("error");
String name = p.getProperty("name");
String detailName = p.getProperty("detailname");

这会让你:

error: "0;"
name: " Pen"
detailName: " TextMarker Highlighter Pink"

您唯一需要记住的是“---”也将是属性中的一个条目。

值中的换行符可能会破坏这一点。

于 2013-06-17T11:17:36.853 回答
0

不确定它是否适用于 Android 但在 Java 中,您不能使用 aScanner来阅读文本吗?例如类似的东西

Scanner scanner = new Scanner(new FileReader(fFile));
while ( scanner.hasNextLine() )
{
     String content = scanner.next();
     ....

     // check text for whatever values you need, e.g.
     if(content.startsWith("name=")
     {
            // do your thing
            ....
     }
}
于 2013-06-17T11:21:08.860 回答