1

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

<EncryptedToken>11d8575638eaa52b</EncryptedToken>

これが私のJavaクラスです:

@Root
public class EncryptedTokenDto {
@Element(name = "EncryptedToken", required = false)
private String encryptedToken;

public String getEncryptedToken() {
    return encryptedToken;
}

public void setEncryptedToken(String encryptedToken) {
    this.encryptedToken = encryptedToken;
}

}

しかし、このxmlを解析しようとすると、encryptedToken常にnull. コードの何が問題になっていますか?

更新:

これが私のサンプルコードですmain

   Serializer serializer = new Persister();

    EncryptedTokenDto encryptedTokenDto = null;
    try {
        String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n <EncryptedToken>11d8575638eaa52b</EncryptedToken>";
        encryptedTokenDto = serializer.read(EncryptedTokenDto.class, xml);
    } catch (Exception e) {
        e.printStackTrace();
    }
    if (encryptedTokenDto != null) {
        System.out.println(encryptedTokenDto.getEncryptedToken());
    }

実際には、Web サービスから xml を受け取るため、実際のコードではありませんが、他のすべては正常に機能します。問題は xml の解析のみです。

更新 2:

xml を次のように変更すると、次のようになることがわかりました。

String xml = "<root> \n <EncryptedToken>11d8575638eaa52b</EncryptedToken> \n </root>";

そして、クラスを次のように記述します。

@Root
public class EncryptedTokenDto {
@Element(name = "EncryptedToken", required = false)
private String encryptedToken;

public String getEncryptedToken() {
    return this.encryptedToken;
}

public void setEncryptedToken(String encryptedToken) {
    this.encryptedToken = encryptedToken;
}
}

すべて問題ありません。

私の質問は次のとおりです。SimpleXml を使用して、ルート relement なしで xml ドキュメントを解析する方法はありますか

注: SimpleXml を使用する必要があります。他のパーサーは使用できません。

4

1 に答える 1

1

@Element の代わりに @Text を試してください。

于 2013-07-04T09:40:16.983 に答える