2

私はこのような非常に単純なXMLを持っています:

<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://icacec.com/">TRUE,Hrithik Sharma,201301-11</string>

ここで、 TRUEHrithik Sharma201301-11のみを3つの別々の変数で抽出したいと思います。

次のように、 「、」に基づいて文字列を分割できます。

String[] parts = responseBody.split(",");
String response_auth = parts[0];
String user_name = parts[1];    
String user_number=parts[2];

しかし、私が直面している問題は、文字列が独立して抽出されていないことです。より正確には、XMLタグなし。どうすればそれを達成できますか?

4

5 に答える 5

3

これでこの単純なケースは解決できますが、解析せずに他の条件をどうするのでしょうか?

public static void main(String[] args) {
    String raw = "<string xmlns=\"http://icacec.com/\">TRUE,Hrithik Sharma,201301-11</string>";
    raw = raw.substring(0, raw.lastIndexOf("<"));
    raw = raw.substring(raw.lastIndexOf(">") + 1, raw.length());
    String [] contents = raw.split(",");
    for (String txt : contents)
        System.out.println(txt);
}
于 2013-03-14T05:30:57.740 に答える
1

XML で何が得られるかを実際に理解していない限り、これは非常にお勧めできません。

応答本文:

<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://icacec.com/">TRUE,Hrithik Sharma,201301-11</string>

コード:

String[] parts = responseBody.split(">");
String tagsFirst= parts[0];
String usefull = parts[2];    

String[] actualBody = usefull.split("<");

String content = actualBody[0];
String[] contentParts=content.split(",");
//now you can have the three parts:
String truefalse=contentParts[0];
String name=contentParts[1];
String date=contentParts[2];
于 2013-03-14T05:28:44.453 に答える
0

この正規表現を試してください -

"<string xmlns=\"http://icacec.com/\">(.+),(.+),(.+)</string>"

キャプチャ グループ 1、2、および 3 には、次の 3 つのアイテムが含まれます。

Pattern pattern = Pattern.compile("<string xmlns=\"http://icacec.com/\">(.+),(.+),(.+)</string>");
Matcher matcher = pattern.matcher("<string xmlns=\"http://icacec.com/\">TRUE,Hrithik Sharma,201301-11</string>");

if(matcher.matches())
{
    System.out.println("Bool: " + matcher.group(1));
    System.out.println("Name: " + matcher.group(2));
    System.out.println("Date: " + matcher.group(3));
}
于 2013-03-14T05:36:30.753 に答える
0

次のように分割してみてください。

String[] strTemp = strXMLOutput.split("<TagName>");
strTemp = strTemp[1].split("</TagName>");
String strValue = strTemp[0]

100%うまくいきます。

于 2013-03-14T05:40:56.170 に答える
0

これを試すことができます:

import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class Test {

    public static void main(String[] args) {
        String responseBody = null;
        String inputString = "<?xml version=\"1.0\" encoding=\"utf-8\"?><string xmlns=\"http://icacec.com/\">TRUE,Hrithik Sharma,201301-11</string>";
        String regex = "<string[^>]*>(.+?)</string\\s*>";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(inputString);
        while(matcher.find()) {
            responseBody = matcher.group(1);
            System.out.println(responseBody);
        }

        String[] splits = responseBody.split(",");
        System.out.println(splits[0]);/*prints TRUE*/
        System.out.println(splits[1]);/*prints Hrithik Sharma*/
        System.out.println(splits[2]);/*201301-11*/

    }

}
于 2013-03-14T05:49:11.430 に答える